pax_global_header 0000666 0000000 0000000 00000000064 11613020212 0014476 g ustar 00root root 0000000 0000000 52 comment=3976014ef4528a8f38bbd522f451dda3d1893274
php-crypt-blowfish-1.1.0~RC2/ 0000775 0000000 0000000 00000000000 11613020212 0015743 5 ustar 00root root 0000000 0000000 php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/ 0000775 0000000 0000000 00000000000 11613020212 0021643 5 ustar 00root root 0000000 0000000 php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish.php 0000664 0000000 0000000 00000020366 11613020212 0024140 0 ustar 00root root 0000000 0000000
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: Blowfish.php,v 1.86 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
*/
/**
* Required PEAR package(s)
*/
require_once 'PEAR.php';
/**
* Engine choice constants
*/
/**
* To let the Crypt_Blowfish package decide which engine to use
* @since 1.1.0
*/
define('CRYPT_BLOWFISH_AUTO', 1);
/**
* To use the MCrypt PHP extension.
* @since 1.1.0
*/
define('CRYPT_BLOWFISH_MCRYPT', 2);
/**
* To use the PHP-only engine.
* @since 1.1.0
*/
define('CRYPT_BLOWFISH_PHP', 3);
/**
* Example using the factory method in CBC mode
*
*
* $bf =& Crypt_Blowfish::factory('cbc');
* if (PEAR::isError($bf)) {
* echo $bf->getMessage();
* exit;
* }
* $iv = 'abc123+=';
* $key = 'My secret key';
* $bf->setKey($key, $iv);
* $encrypted = $bf->encrypt('this is some example plain text');
* $bf->setKey($key, $iv);
* $plaintext = $bf->decrypt($encrypted);
* if (PEAR::isError($plaintext)) {
* echo $plaintext->getMessage();
* exit;
* }
* // Encrypted text is padded prior to encryption
* // so you may need to trim the decrypted result.
* echo 'plain text: ' . trim($plaintext);
*
*
* To disable using the mcrypt library, define the CRYPT_BLOWFISH_NOMCRYPT
* constant. This is useful for instance on Windows platform with a buggy
* mdecrypt_generic() function.
*
* define('CRYPT_BLOWFISH_NOMCRYPT', true);
*
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
* @access public
*/
class Crypt_Blowfish
{
/**
* Implementation-specific Crypt_Blowfish object
*
* @var object
* @access private
*/
var $_crypt = null;
/**
* Initialization vector
*
* @var string
* @access protected
*/
var $_iv = null;
/**
* Holds block size
*
* @var integer
* @access protected
*/
var $_block_size = 8;
/**
* Holds IV size
*
* @var integer
* @access protected
*/
var $_iv_size = 8;
/**
* Holds max key size
*
* @var integer
* @access protected
*/
var $_key_size = 56;
/**
* Crypt_Blowfish Constructor
* Initializes the Crypt_Blowfish object (in EBC mode), and sets
* the secret key
*
* @param string $key
* @access public
* @deprecated Since 1.1.0
* @see Crypt_Blowfish::factory()
*/
function Crypt_Blowfish($key)
{
$this->_crypt =& Crypt_Blowfish::factory('ecb', $key);
if (!PEAR::isError($this->_crypt)) {
$this->_crypt->setKey($key);
}
}
/**
* Crypt_Blowfish object factory
*
* This is the recommended method to create a Crypt_Blowfish instance.
*
* When using CRYPT_BLOWFISH_AUTO, you can force the package to ignore
* the MCrypt extension, by defining CRYPT_BLOWFISH_NOMCRYPT.
*
* @param string $mode operating mode 'ecb' or 'cbc' (case insensitive)
* @param string $key
* @param string $iv initialization vector (must be provided for CBC mode)
* @param integer $engine one of CRYPT_BLOWFISH_AUTO, CRYPT_BLOWFISH_PHP
* or CRYPT_BLOWFISH_MCRYPT
* @return object Crypt_Blowfish object or PEAR_Error object on error
* @access public
* @static
* @since 1.1.0
*/
function &factory($mode = 'ecb', $key = null, $iv = null, $engine = CRYPT_BLOWFISH_AUTO)
{
switch ($engine) {
case CRYPT_BLOWFISH_AUTO:
if (!defined('CRYPT_BLOWFISH_NOMCRYPT')
&& extension_loaded('mcrypt')) {
$engine = CRYPT_BLOWFISH_MCRYPT;
} else {
$engine = CRYPT_BLOWFISH_PHP;
}
break;
case CRYPT_BLOWFISH_MCRYPT:
if (!PEAR::loadExtension('mcrypt')) {
return PEAR::raiseError('MCrypt extension is not available.');
}
break;
}
switch ($engine) {
case CRYPT_BLOWFISH_PHP:
$mode = strtoupper($mode);
$class = 'Crypt_Blowfish_' . $mode;
include_once 'Crypt/Blowfish/' . $mode . '.php';
$crypt = new $class(null);
break;
case CRYPT_BLOWFISH_MCRYPT:
include_once 'Crypt/Blowfish/MCrypt.php';
$crypt = new Crypt_Blowfish_MCrypt(null, $mode);
break;
}
if (!is_null($key) || !is_null($iv)) {
$result = $crypt->setKey($key, $iv);
if (PEAR::isError($result)) {
return $result;
}
}
return $crypt;
}
/**
* Returns the algorithm's block size
*
* @return integer
* @access public
* @since 1.1.0
*/
function getBlockSize()
{
return $this->_block_size;
}
/**
* Returns the algorithm's IV size
*
* @return integer
* @access public
* @since 1.1.0
*/
function getIVSize()
{
return $this->_iv_size;
}
/**
* Returns the algorithm's maximum key size
*
* @return integer
* @access public
* @since 1.1.0
*/
function getMaxKeySize()
{
return $this->_key_size;
}
/**
* Deprecated isReady method
*
* @return bool
* @access public
* @deprecated
*/
function isReady()
{
return true;
}
/**
* Deprecated init method - init is now a private
* method and has been replaced with _init
*
* @return bool
* @access public
* @deprecated
*/
function init()
{
return $this->_crypt->init();
}
/**
* Encrypts a string
*
* Value is padded with NUL characters prior to encryption. You may
* need to trim or cast the type when you decrypt.
*
* @param string $plainText the string of characters/bytes to encrypt
* @return string|PEAR_Error Returns cipher text on success, PEAR_Error on failure
* @access public
*/
function encrypt($plainText)
{
return $this->_crypt->encrypt($plainText);
}
/**
* Decrypts an encrypted string
*
* The value was padded with NUL characters when encrypted. You may
* need to trim the result or cast its type.
*
* @param string $cipherText the binary string to decrypt
* @return string|PEAR_Error Returns plain text on success, PEAR_Error on failure
* @access public
*/
function decrypt($cipherText)
{
return $this->_crypt->decrypt($cipherText);
}
/**
* Sets the secret key
* The key must be non-zero, and less than or equal to
* 56 characters (bytes) in length.
*
* If you are making use of the PHP MCrypt extension, you must call this
* method before each encrypt() and decrypt() call.
*
* @param string $key
* @return boolean|PEAR_Error Returns TRUE on success, PEAR_Error on failure
* @access public
*/
function setKey($key)
{
return $this->_crypt->setKey($key);
}
}
?> php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/ 0000775 0000000 0000000 00000000000 11613020212 0023420 5 ustar 00root root 0000000 0000000 php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/CBC.php 0000664 0000000 0000000 00000011032 11613020212 0024515 0 ustar 00root root 0000000 0000000
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: CBC.php,v 1.8 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
* @since 1.1.0
*/
/**
* Required parent class
*/
require_once 'Crypt/Blowfish/PHP.php';
/**
* Example
*
* $bf =& Crypt_Blowfish::factory('cbc');
* if (PEAR::isError($bf)) {
* echo $bf->getMessage();
* exit;
* }
* $iv = 'abc123@%';
* $bf->setKey('My secret key', $iv);
* $encrypted = $bf->encrypt('this is some example plain text');
* $bf->setKey('My secret key', $iv);
* $plaintext = $bf->decrypt($encrypted);
* echo "plain text: $plaintext";
*
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
* @since 1.1.0
*/
class Crypt_Blowfish_CBC extends Crypt_Blowfish_PHP
{
/**
* Crypt_Blowfish Constructor
* Initializes the Crypt_Blowfish object, and sets
* the secret key
*
* @param string $key
* @param string $iv initialization vector
* @access public
*/
function Crypt_Blowfish_CBC($key = null, $iv = null)
{
$this->__construct($key, $iv);
}
/**
* Class constructor
*
* @param string $key
* @param string $iv initialization vector
* @access public
*/
function __construct($key = null, $iv = null)
{
$this->_iv_required = true;
parent::__construct($key, $iv);
}
/**
* Encrypts a string
*
* Value is padded with NUL characters prior to encryption. You may
* need to trim or cast the type when you decrypt.
*
* @param string $plainText string of characters/bytes to encrypt
* @return string|PEAR_Error Returns cipher text on success, PEAR_Error on failure
* @access public
*/
function encrypt($plainText)
{
if (!is_string($plainText)) {
return PEAR::raiseError('Input must be a string', 0);
} elseif (empty($this->_P)) {
return PEAR::raiseError('The key is not initialized.', 8);
}
$cipherText = '';
$len = strlen($plainText);
$plainText .= str_repeat(chr(0), (8 - ($len % 8)) % 8);
list(, $Xl, $Xr) = unpack('N2', substr($plainText, 0, 8) ^ $this->_iv);
$this->_encipher($Xl, $Xr);
$cipherText .= pack('N2', $Xl, $Xr);
for ($i = 8; $i < $len; $i += 8) {
list(, $Xl, $Xr) = unpack('N2', substr($plainText, $i, 8) ^ substr($cipherText, $i - 8, 8));
$this->_encipher($Xl, $Xr);
$cipherText .= pack('N2', $Xl, $Xr);
}
return $cipherText;
}
/**
* Decrypts an encrypted string
*
* The value was padded with NUL characters when encrypted. You may
* need to trim the result or cast its type.
*
* @param string $cipherText
* @return string|PEAR_Error Returns plain text on success, PEAR_Error on failure
* @access public
*/
function decrypt($cipherText)
{
if (!is_string($cipherText)) {
return PEAR::raiseError('Cipher text must be a string', 1);
}
if (empty($this->_P)) {
return PEAR::raiseError('The key is not initialized.', 8);
}
$plainText = '';
$len = strlen($cipherText);
$cipherText .= str_repeat(chr(0), (8 - ($len % 8)) % 8);
list(, $Xl, $Xr) = unpack('N2', substr($cipherText, 0, 8));
$this->_decipher($Xl, $Xr);
$plainText .= (pack('N2', $Xl, $Xr) ^ $this->_iv);
for ($i = 8; $i < $len; $i += 8) {
list(, $Xl, $Xr) = unpack('N2', substr($cipherText, $i, 8));
$this->_decipher($Xl, $Xr);
$plainText .= (pack('N2', $Xl, $Xr) ^ substr($cipherText, $i - 8, 8));
}
return $plainText;
}
}
?> php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/DefaultKey.php 0000664 0000000 0000000 00000043745 11613020212 0026203 0 ustar 00root root 0000000 0000000
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: DefaultKey.php,v 1.82 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
*/
/**
* Class containing default key
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
*/
class Crypt_Blowfish_DefaultKey
{
var $P = array();
var $S = array();
function Crypt_Blowfish_DefaultKey()
{
$this->P = array(
0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
0x9216D5D9, 0x8979FB1B
);
$this->S = array(
array(
0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A
),
array(
0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7
),
array(
0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0
),
array(
0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6
)
);
}
}
?>
php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/ECB.php 0000664 0000000 0000000 00000010110 11613020212 0024513 0 ustar 00root root 0000000 0000000
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: ECB.php,v 1.7 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
* @since 1.1.0
*/
/**
* Required parent class
*/
require_once 'Crypt/Blowfish/PHP.php';
/**
* Example
*
* $bf =& Crypt_Blowfish::factory('ecb');
* if (PEAR::isError($bf)) {
* echo $bf->getMessage();
* exit;
* }
* $bf->setKey('My secret key');
* $encrypted = $bf->encrypt('this is some example plain text');
* $plaintext = $bf->decrypt($encrypted);
* echo "plain text: $plaintext";
*
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
* @since 1.1.0
*/
class Crypt_Blowfish_ECB extends Crypt_Blowfish_PHP
{
/**
* Crypt_Blowfish Constructor
* Initializes the Crypt_Blowfish object, and sets
* the secret key
*
* @param string $key
* @param string $iv initialization vector
* @access public
*/
function Crypt_Blowfish_ECB($key = null, $iv = null)
{
$this->__construct($key, $iv);
}
/**
* Class constructor
*
* @param string $key
* @param string $iv initialization vector
* @access public
*/
function __construct($key = null, $iv = null)
{
$this->_iv_required = false;
parent::__construct($key, $iv);
}
/**
* Encrypts a string
*
* Value is padded with NUL characters prior to encryption. You may
* need to trim or cast the type when you decrypt.
*
* @param string $plainText string of characters/bytes to encrypt
* @return string|PEAR_Error Returns cipher text on success, PEAR_Error on failure
* @access public
*/
function encrypt($plainText)
{
if (!is_string($plainText)) {
return PEAR::raiseError('Input must be a string', 0);
} elseif (empty($this->_P)) {
return PEAR::raiseError('The key is not initialized.', 8);
}
$cipherText = '';
$len = strlen($plainText);
$plainText .= str_repeat(chr(0), (8 - ($len % 8)) % 8);
for ($i = 0; $i < $len; $i += 8) {
list(, $Xl, $Xr) = unpack('N2', substr($plainText, $i, 8));
$this->_encipher($Xl, $Xr);
$cipherText .= pack('N2', $Xl, $Xr);
}
return $cipherText;
}
/**
* Decrypts an encrypted string
*
* The value was padded with NUL characters when encrypted. You may
* need to trim the result or cast its type.
*
* @param string $cipherText
* @return string|PEAR_Error Returns plain text on success, PEAR_Error on failure
* @access public
*/
function decrypt($cipherText)
{
if (!is_string($cipherText)) {
return PEAR::raiseError('Cipher text must be a string', 1);
}
if (empty($this->_P)) {
return PEAR::raiseError('The key is not initialized.', 8);
}
$plainText = '';
$len = strlen($cipherText);
$cipherText .= str_repeat(chr(0), (8 - ($len % 8)) % 8);
for ($i = 0; $i < $len; $i += 8) {
list(, $Xl, $Xr) = unpack('N2', substr($cipherText, $i, 8));
$this->_decipher($Xl, $Xr);
$plainText .= pack('N2', $Xl, $Xr);
}
return $plainText;
}
}
?> php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/MCrypt.php 0000664 0000000 0000000 00000012426 11613020212 0025354 0 ustar 00root root 0000000 0000000
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: MCrypt.php,v 1.4 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
* @since 1.1.0
*/
/**
* Include base class
*/
require_once 'Crypt/Blowfish.php';
/**
* Example using the factory method in CBC mode and forcing using
* the MCrypt library.
*
* $bf =& Crypt_Blowfish::factory('cbc', null, null, CRYPT_BLOWFISH_MCRYPT);
* if (PEAR::isError($bf)) {
* echo $bf->getMessage();
* exit;
* }
* $iv = 'abc123+=';
* $key = 'My secret key';
* $bf->setKey($key, $iv);
* $encrypted = $bf->encrypt('this is some example plain text');
* $bf->setKey($key, $iv);
* $plaintext = $bf->decrypt($encrypted);
* echo "plain text: $plaintext";
*
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
* @since 1.1.0
*/
class Crypt_Blowfish_MCrypt extends Crypt_Blowfish
{
/**
* Mcrypt td resource
*
* @var resource
* @access private
*/
var $_td = null;
/**
* Crypt_Blowfish Constructor
* Initializes the Crypt_Blowfish object, and sets the secret key
*
* @param string $key
* @param string $mode operating mode 'ecb', 'cbc'...
* @param string $iv initialization vector
* @access public
*/
function Crypt_Blowfish_MCrypt($key = null, $mode = 'ecb', $iv = null)
{
$this->_iv = $iv . ((strlen($iv) < 8)
? str_repeat(chr(0), 8 - strlen($iv)) : '');
$this->_td = mcrypt_module_open(MCRYPT_BLOWFISH, '', $mode, '');
if (is_null($iv)) {
$this->_iv = mcrypt_create_iv(8, MCRYPT_RAND);
}
switch (strtolower($mode)) {
case 'ecb':
$this->_iv_required = false;
break;
case 'cbc':
default:
$this->_iv_required = true;
break;
}
$this->setKey($key, $this->_iv);
}
/**
* Encrypts a string
*
* Value is padded with NUL characters prior to encryption. You may
* need to trim or cast the type when you decrypt.
*
* @param string $plainText string of characters/bytes to encrypt
* @return string|PEAR_Error Returns cipher text on success,
* or PEAR_Error on failure
* @access public
*/
function encrypt($plainText)
{
if (!is_string($plainText)) {
return PEAR::raiseError('Input must be a string', 0);
}
return mcrypt_generic($this->_td, $plainText);
}
/**
* Decrypts an encrypted string
*
* The value was padded with NUL characters when encrypted. You may
* need to trim the result or cast its type.
*
* @param string $cipherText
* @return string|PEAR_Error Returns plain text on success,
* or PEAR_Error on failure
* @access public
*/
function decrypt($cipherText)
{
if (!is_string($cipherText)) {
return PEAR::raiseError('Cipher text must be a string', 1);
}
return mdecrypt_generic($this->_td, $cipherText);
}
/**
* Sets the secret key
* The key must be non-zero, and less than or equal to
* 56 characters (bytes) in length.
*
* If you are making use of the PHP mcrypt extension, you must call this
* method before each encrypt() and decrypt() call.
*
* @param string $key
* @param string $iv 8-char initialization vector (required for CBC mode)
* @return boolean|PEAR_Error Returns TRUE on success, PEAR_Error on failure
* @access public
*/
function setKey($key, $iv = null)
{
static $keyHash = null;
if (!is_string($key)) {
return PEAR::raiseError('Key must be a string', 2);
}
$len = strlen($key);
if ($len > 56 || $len == 0) {
return PEAR::raiseError('Key must be less than 56 characters (bytes) and non-zero. Supplied key length: ' . $len, 3);
}
if ($this->_iv_required) {
if (strlen($iv) != 8) {
return PEAR::raiseError('IV must be 8-character (byte) long. Supplied IV length: ' . strlen($iv), 7);
}
$this->_iv = $iv;
}
$return = mcrypt_generic_init($this->_td, $key, $this->_iv);
if ($return < 0) {
return PEAR::raiseError('Unknown PHP MCrypt library error', 4);
}
return true;
}
}
?> php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/Blowfish/PHP.php 0000664 0000000 0000000 00000017314 11613020212 0024566 0 ustar 00root root 0000000 0000000
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @version CVS: $Id: PHP.php,v 1.7 2008/08/30 21:53:50 jausions Exp $
* @link http://pear.php.net/package/Crypt_Blowfish
* @since 1.1.0
*/
/**
* Include base class
*/
require_once 'Crypt/Blowfish.php';
/**
* Common class for PHP-only implementations
*
* @category Encryption
* @package Crypt_Blowfish
* @author Matthew Fonda
* @author Philippe Jausions
* @copyright 2005-2008 Matthew Fonda
* @license http://www.opensource.net/licenses/bsd-license.php New BSD
* @link http://pear.php.net/package/Crypt_Blowfish
* @version 1.1.0RC2
* @since 1.1.0
*/
class Crypt_Blowfish_PHP extends Crypt_Blowfish
{
/**
* P-Array contains 18 32-bit subkeys
*
* @var array
* @access protected
*/
var $_P = array();
/**
* Array of four S-Blocks each containing 256 32-bit entries
*
* @var array
* @access protected
*/
var $_S = array();
/**
* Whether the IV is required
*
* @var boolean
* @access protected
*/
var $_iv_required = false;
/**
* Hash value of last used key
*
* @var string
* @access protected
*/
var $_keyHash = null;
/**
* Crypt_Blowfish_PHP Constructor
* Initializes the Crypt_Blowfish object, and sets
* the secret key
*
* @param string $key
* @param string $mode operating mode 'ecb' or 'cbc'
* @param string $iv initialization vector
* @access protected
*/
function __construct($key = null, $iv = null)
{
$this->_iv = $iv . ((strlen($iv) < $this->_iv_size)
? str_repeat(chr(0), $this->_iv_size - strlen($iv))
: '');
if (!is_null($key)) {
$this->setKey($key, $this->_iv);
}
}
/**
* Initializes the Crypt_Blowfish object
*
* @access private
*/
function _init()
{
require_once 'Crypt/Blowfish/DefaultKey.php';
$defaults = new Crypt_Blowfish_DefaultKey();
$this->_P = $defaults->P;
$this->_S = $defaults->S;
}
/**
* Workaround for XOR on certain systems
*
* @param integer|float $l
* @param integer|float $r
* @return float
* @access protected
*/
function _binxor($l, $r)
{
$x = (($l < 0) ? (float)($l + 4294967296) : (float)$l)
^ (($r < 0) ? (float)($r + 4294967296) : (float)$r);
return (float)(($x < 0) ? $x + 4294967296 : $x);
}
/**
* Enciphers a single 64-bit block
*
* @param int &$Xl
* @param int &$Xr
* @access protected
*/
function _encipher(&$Xl, &$Xr)
{
if ($Xl < 0) {
$Xl += 4294967296;
}
if ($Xr < 0) {
$Xr += 4294967296;
}
for ($i = 0; $i < 16; $i++) {
$temp = $Xl ^ $this->_P[$i];
if ($temp < 0) {
$temp += 4294967296;
}
$Xl = fmod((fmod($this->_S[0][($temp >> 24) & 255]
+ $this->_S[1][($temp >> 16) & 255], 4294967296)
^ $this->_S[2][($temp >> 8) & 255])
+ $this->_S[3][$temp & 255], 4294967296) ^ $Xr;
$Xr = $temp;
}
$Xr = $this->_binxor($Xl, $this->_P[16]);
$Xl = $this->_binxor($temp, $this->_P[17]);
}
/**
* Deciphers a single 64-bit block
*
* @param int &$Xl
* @param int &$Xr
* @access protected
*/
function _decipher(&$Xl, &$Xr)
{
if ($Xl < 0) {
$Xl += 4294967296;
}
if ($Xr < 0) {
$Xr += 4294967296;
}
for ($i = 17; $i > 1; $i--) {
$temp = $Xl ^ $this->_P[$i];
if ($temp < 0) {
$temp += 4294967296;
}
$Xl = fmod((fmod($this->_S[0][($temp >> 24) & 255]
+ $this->_S[1][($temp >> 16) & 255], 4294967296)
^ $this->_S[2][($temp >> 8) & 255])
+ $this->_S[3][$temp & 255], 4294967296) ^ $Xr;
$Xr = $temp;
}
$Xr = $this->_binxor($Xl, $this->_P[1]);
$Xl = $this->_binxor($temp, $this->_P[0]);
}
/**
* Sets the secret key
* The key must be non-zero, and less than or equal to
* 56 characters (bytes) in length.
*
* If you are making use of the PHP mcrypt extension, you must call this
* method before each encrypt() and decrypt() call.
*
* @param string $key
* @param string $iv 8-char initialization vector (required for CBC mode)
* @return boolean|PEAR_Error Returns TRUE on success, PEAR_Error on failure
* @access public
* @todo Fix the caching of the key
*/
function setKey($key, $iv = null)
{
if (!is_string($key)) {
return PEAR::raiseError('Key must be a string', 2);
}
$len = strlen($key);
if ($len > $this->_key_size || $len == 0) {
return PEAR::raiseError('Key must be less than ' . $this->_key_size . ' characters (bytes) and non-zero. Supplied key length: ' . $len, 3);
}
if ($this->_iv_required) {
if (strlen($iv) != $this->_iv_size) {
return PEAR::raiseError('IV must be ' . $this->_iv_size . '-character (byte) long. Supplied IV length: ' . strlen($iv), 7);
}
$this->_iv = $iv;
}
if ($this->_keyHash == md5($key)) {
return true;
}
$this->_init();
$k = 0;
$data = 0;
$datal = 0;
$datar = 0;
for ($i = 0; $i < 18; $i++) {
$data = 0;
for ($j = 4; $j > 0; $j--) {
$data = $data << 8 | ord($key{$k});
$k = ($k+1) % $len;
}
$this->_P[$i] ^= $data;
}
for ($i = 0; $i <= 16; $i += 2) {
$this->_encipher($datal, $datar);
$this->_P[$i] = $datal;
$this->_P[$i+1] = $datar;
}
for ($i = 0; $i < 256; $i += 2) {
$this->_encipher($datal, $datar);
$this->_S[0][$i] = $datal;
$this->_S[0][$i+1] = $datar;
}
for ($i = 0; $i < 256; $i += 2) {
$this->_encipher($datal, $datar);
$this->_S[1][$i] = $datal;
$this->_S[1][$i+1] = $datar;
}
for ($i = 0; $i < 256; $i += 2) {
$this->_encipher($datal, $datar);
$this->_S[2][$i] = $datal;
$this->_S[2][$i+1] = $datar;
}
for ($i = 0; $i < 256; $i += 2) {
$this->_encipher($datal, $datar);
$this->_S[3][$i] = $datal;
$this->_S[3][$i+1] = $datar;
}
$this->_keyHash = md5($key);
return true;
}
}
?> php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/tests/ 0000775 0000000 0000000 00000000000 11613020212 0023005 5 ustar 00root root 0000000 0000000 php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/tests/blowfish.phpt 0000664 0000000 0000000 00000012434 11613020212 0025523 0 ustar 00root root 0000000 0000000 --TEST--
Test Crypt_Blowfish in ECB mode
--FILE--
getMessage() . "\n";
} else {
foreach($vectors as $data) {
$data = trim($data);
if ($data) {
list($key, $plain, $crypt) = split('[[:space:]]+', $data);
printf('%s %s ',
$key,
$plain
);
$key = hex2bin(trim($key));
$plain = hex2bin(($plain));
$crypt = strtolower(trim($crypt));
$result = $b->setKey($key);
if (PEAR::isError($result)) {
echo 'Error with key: ' . $result->getMessage() . "\n";
continue;
}
$guess = $b->encrypt($plain);
if (PEAR::isError($guess)) {
echo 'Error while encrypting: ' . $guess->getMessage() . "\n";
continue;
}
$guess = strtolower(bin2hex($guess));
// Reset the key (mostly for mcrypt compatibility)
$result = $b->setKey($key);
if (PEAR::isError($result)) {
echo 'Error with key: ' . $result->getMessage() . "\n";
continue;
}
$reverse = $b->decrypt(hex2bin($crypt));
if (PEAR::isError($guess)) {
echo 'Error while decrypting: ' . $guess->getMessage() . "\n";
continue;
}
printf("%s %s %s %-7s %s\n",
$crypt,
$guess,
strtolower(bin2hex($reverse)),
(($crypt == $guess) ? 'OK' : 'BAD'),
(($plain == $reverse) ? 'OK' : 'BAD')
);
}
}
}
?>
--EXPECT--
key plain expected crypt actual crypt actual decrypt encrypt decrypt
0000000000000000 0000000000000000 4ef997456198dd78 4ef997456198dd78 0000000000000000 OK OK
FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 51866fd5b85ecb8a 51866fd5b85ecb8a ffffffffffffffff OK OK
3000000000000000 1000000000000001 7d856f9a613063f2 7d856f9a613063f2 1000000000000001 OK OK
1111111111111111 1111111111111111 2466dd878b963c9d 2466dd878b963c9d 1111111111111111 OK OK
0123456789ABCDEF 1111111111111111 61f9c3802281b096 61f9c3802281b096 1111111111111111 OK OK
1111111111111111 0123456789ABCDEF 7d0cc630afda1ec7 7d0cc630afda1ec7 0123456789abcdef OK OK
FEDCBA9876543210 0123456789ABCDEF 0aceab0fc6a0a28d 0aceab0fc6a0a28d 0123456789abcdef OK OK
7CA110454A1A6E57 01A1D6D039776742 59c68245eb05282b 59c68245eb05282b 01a1d6d039776742 OK OK
0131D9619DC1376E 5CD54CA83DEF57DA b1b8cc0b250f09a0 b1b8cc0b250f09a0 5cd54ca83def57da OK OK
07A1133E4A0B2686 0248D43806F67172 1730e5778bea1da4 1730e5778bea1da4 0248d43806f67172 OK OK
3849674C2602319E 51454B582DDF440A a25e7856cf2651eb a25e7856cf2651eb 51454b582ddf440a OK OK
04B915BA43FEB5B6 42FD443059577FA2 353882b109ce8f1a 353882b109ce8f1a 42fd443059577fa2 OK OK
0113B970FD34F2CE 059B5E0851CF143A 48f4d0884c379918 48f4d0884c379918 059b5e0851cf143a OK OK
0170F175468FB5E6 0756D8E0774761D2 432193b78951fc98 432193b78951fc98 0756d8e0774761d2 OK OK
43297FAD38E373FE 762514B829BF486A 13f04154d69d1ae5 13f04154d69d1ae5 762514b829bf486a OK OK
07A7137045DA2A16 3BDD119049372802 2eedda93ffd39c79 2eedda93ffd39c79 3bdd119049372802 OK OK
04689104C2FD3B2F 26955F6835AF609A d887e0393c2da6e3 d887e0393c2da6e3 26955f6835af609a OK OK
37D06BB516CB7546 164D5E404F275232 5f99d04f5b163969 5f99d04f5b163969 164d5e404f275232 OK OK
1F08260D1AC2465E 6B056E18759F5CCA 4a057a3b24d3977b 4a057a3b24d3977b 6b056e18759f5cca OK OK
584023641ABA6176 004BD6EF09176062 452031c1e4fada8e 452031c1e4fada8e 004bd6ef09176062 OK OK
025816164629B007 480D39006EE762F2 7555ae39f59b87bd 7555ae39f59b87bd 480d39006ee762f2 OK OK
49793EBC79B3258F 437540C8698F3CFA 53c55f9cb49fc019 53c55f9cb49fc019 437540c8698f3cfa OK OK
4FB05E1515AB73A7 072D43A077075292 7a8e7bfa937e89a3 7a8e7bfa937e89a3 072d43a077075292 OK OK
49E95D6D4CA229BF 02FE55778117F12A cf9c5d7a4986adb5 cf9c5d7a4986adb5 02fe55778117f12a OK OK
018310DC409B26D6 1D9D5C5018F728C2 d1abb290658bc778 d1abb290658bc778 1d9d5c5018f728c2 OK OK
1C587F1C13924FEF 305532286D6F295A 55cb3774d13ef201 55cb3774d13ef201 305532286d6f295a OK OK
0101010101010101 0123456789ABCDEF fa34ec4847b268b2 fa34ec4847b268b2 0123456789abcdef OK OK
1F1F1F1F0E0E0E0E 0123456789ABCDEF a790795108ea3cae a790795108ea3cae 0123456789abcdef OK OK
E0FEE0FEF1FEF1FE 0123456789ABCDEF c39e072d9fac631d c39e072d9fac631d 0123456789abcdef OK OK
0000000000000000 FFFFFFFFFFFFFFFF 014933e0cdaff6e4 014933e0cdaff6e4 ffffffffffffffff OK OK
FFFFFFFFFFFFFFFF 0000000000000000 f21e9a77b71c49bc f21e9a77b71c49bc 0000000000000000 OK OK
0123456789ABCDEF 0000000000000000 245946885754369a 245946885754369a 0000000000000000 OK OK
FEDCBA9876543210 FFFFFFFFFFFFFFFF 6b5c5a9c5d9e0a5a 6b5c5a9c5d9e0a5a ffffffffffffffff OK OK php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/tests/blowfish_cbc.phpt 0000664 0000000 0000000 00000022125 11613020212 0026330 0 ustar 00root root 0000000 0000000 --TEST--
Test Crypt_Blowfish in CBC mode
--FILE--
getMessage() . "\n";
} else {
list($m, $t1) = explode(' ', microtime());
$t1 += $m;
foreach ($vectors as $data) {
$data = trim($data);
if ($data) {
list($key, $iv, $plain, $crypt) = split('[[:space:]]+', $data);
printf('%s %s %s ',
$key,
$iv,
$plain
);
$key = hex2bin(trim($key));
$iv = hex2bin(trim($iv));
$plain = hex2bin(trim($plain));
$crypt = strtolower(trim($crypt));
$result = $b->setKey($key, $iv);
if (PEAR::isError($result)) {
echo 'Error with key/IV: ' . $result->getMessage() . "\n";
continue;
}
$guess = $b->encrypt($plain);
if (PEAR::isError($guess)) {
echo 'Error while encrypting: ' . $guess->getMessage() . "\n";
continue;
}
$guess = strtolower(bin2hex($guess));
// Reset the key (mostly for mcrypt compatibility)
$result = $b->setKey($key, $iv);
if (PEAR::isError($result)) {
echo 'Error with key/IV: ' . $result->getMessage() . "\n";
continue;
}
$reverse = $b->decrypt(hex2bin($crypt));
if (PEAR::isError($guess)) {
echo 'Error while decrypting: ' . $guess->getMessage() . "\n";
continue;
}
printf("%s %s %s %-7s %s\n",
$crypt,
$guess,
strtolower(bin2hex($reverse)),
(($crypt == $guess) ? 'OK' : 'BAD'),
(($plain == $reverse) ? 'OK' : 'BAD')
);
}
}
list($m, $t2) = explode(' ', microtime());
$t2 += $m;
//echo 'Time: ' . ($t2 - $t1) . "\n";
}
?>
--EXPECT--
key iv plain encrypted actual encrypt actual decrypt encrypt decrypt
0000000000000000 e4597a95ce318f00 00000000000000000000000000000000 a8272015924885b90bf6094d60ab675c a8272015924885b90bf6094d60ab675c 00000000000000000000000000000000 OK OK
FFFFFFFFFFFFFFFF 034d82b5db2cbed1 ffffffffffffffffffffffffffffffff 28c67fb2a4b3b2c504b8883ce7208425 28c67fb2a4b3b2c504b8883ce7208425 ffffffffffffffffffffffffffffffff OK OK
3000000000000000 011e71fc2a255c17 10000000000000011000000000000001 7b6703568bea9e2a3182dae3b2a99000 7b6703568bea9e2a3182dae3b2a99000 10000000000000011000000000000001 OK OK
1111111111111111 a92a9a9991876002 11111111111111111111111111111111 d7236660f5c9ca453a2bc88479354d01 d7236660f5c9ca453a2bc88479354d01 11111111111111111111111111111111 OK OK
0123456789ABCDEF 4c84ccc79a0e5972 11111111111111111111111111111111 380634d33dc9c612f86d0670b26531ba 380634d33dc9c612f86d0670b26531ba 11111111111111111111111111111111 OK OK
1111111111111111 3c752489ecf3b9df 0123456789abcdef0123456789abcdef eddbd4b4d26d2051b91e8942c9a98969 eddbd4b4d26d2051b91e8942c9a98969 0123456789abcdef0123456789abcdef OK OK
FEDCBA9876543210 649bfefed7c635db 0123456789abcdef0123456789abcdef 6e31bba9ba0ad1b8937f177578d0ec86 6e31bba9ba0ad1b8937f177578d0ec86 0123456789abcdef0123456789abcdef OK OK
7CA110454A1A6E57 0eac175f06d64b43 01a1d6d03977674201a1d6d039776742 2ed1faff2c889f8963a17a837d9f1298 2ed1faff2c889f8963a17a837d9f1298 01a1d6d03977674201a1d6d039776742 OK OK
0131D9619DC1376E b9d5b0954546ea02 5cd54ca83def57da5cd54ca83def57da 2862fe3d1f200bb039a3c8f2c45c6d44 2862fe3d1f200bb039a3c8f2c45c6d44 5cd54ca83def57da5cd54ca83def57da OK OK
07A1133E4A0B2686 1bbdf27477bd347b 0248d43806f671720248d43806f67172 de05ce6ebe42a457f4c2a7e3d69bc864 de05ce6ebe42a457f4c2a7e3d69bc864 0248d43806f671720248d43806f67172 OK OK
3849674C2602319E 39265c919bbb6298 51454b582ddf440a51454b582ddf440a 83885e9372f9f786c6ec5e8502a17386 83885e9372f9f786c6ec5e8502a17386 51454b582ddf440a51454b582ddf440a OK OK
04B915BA43FEB5B6 a72b58bffc83cc6c 42fd443059577fa242fd443059577fa2 175779b150372a553969e790855a0440 175779b150372a553969e790855a0440 42fd443059577fa242fd443059577fa2 OK OK
0113B970FD34F2CE e624f22580b2107d 059b5e0851cf143a059b5e0851cf143a f201622c4ff1c39bf45cfb8636ec0708 f201622c4ff1c39bf45cfb8636ec0708 059b5e0851cf143a059b5e0851cf143a OK OK
0170F175468FB5E6 df27aef6116c4db0 0756d8e0774761d20756d8e0774761d2 cbaaa27d5e86850d3a42471407db2355 cbaaa27d5e86850d3a42471407db2355 0756d8e0774761d20756d8e0774761d2 OK OK
43297FAD38E373FE 802779d02d3094d1 762514b829bf486a762514b829bf486a 7a598cd34ce4ea34d1ccd1c6c565b655 7a598cd34ce4ea34d1ccd1c6c565b655 762514b829bf486a762514b829bf486a OK OK
07A7137045DA2A16 79b8c0ad914767ba 3bdd1190493728023bdd119049372802 e090aa274650f2811291b089055674ba e090aa274650f2811291b089055674ba 3bdd1190493728023bdd119049372802 OK OK
04689104C2FD3B2F 1a6ca98308d45d1f 26955f6835af609a26955f6835af609a 20b2ca4887db7f531c05c0f865b4971f 20b2ca4887db7f531c05c0f865b4971f 26955f6835af609a26955f6835af609a OK OK
37D06BB516CB7546 50d75f78588ceaf2 164d5e404f275232164d5e404f275232 4c458a79e14a5ba347ea2f3083c35b2f 4c458a79e14a5ba347ea2f3083c35b2f 164d5e404f275232164d5e404f275232 OK OK
1F08260D1AC2465E c23190bc4bfa4574 6b056e18759f5cca6b056e18759f5cca 15b1a2cb9ec85501ee57cf712c4d843a 15b1a2cb9ec85501ee57cf712c4d843a 6b056e18759f5cca6b056e18759f5cca OK OK
584023641ABA6176 0c92fd07e27f65d6 004bd6ef09176062004bd6ef09176062 78b93f61f96a1aaf49a0460a9792d6d0 78b93f61f96a1aaf49a0460a9792d6d0 004bd6ef09176062004bd6ef09176062 OK OK
025816164629B007 1fd632a79fd63187 480d39006ee762f2480d39006ee762f2 6476e6c069674d4a9b3c1adec86052d4 6476e6c069674d4a9b3c1adec86052d4 480d39006ee762f2480d39006ee762f2 OK OK
49793EBC79B3258F ba235548ef50bd1c 437540c8698f3cfa437540c8698f3cfa cf2f51cb1b752fcc46e97cb5a546f574 cf2f51cb1b752fcc46e97cb5a546f574 437540c8698f3cfa437540c8698f3cfa OK OK
4FB05E1515AB73A7 0f002440be99b4d4 072d43a077075292072d43a077075292 404c68ec539b9db86cf4d4b07d57bcce 404c68ec539b9db86cf4d4b07d57bcce 072d43a077075292072d43a077075292 OK OK
49E95D6D4CA229BF 731d038d1d35d9cd 02fe55778117f12a02fe55778117f12a d8c22249d6c46d923b87162a327c7b0a d8c22249d6c46d923b87162a327c7b0a 02fe55778117f12a02fe55778117f12a OK OK
018310DC409B26D6 4ab1336f128aaebf 1d9d5c5018f728c21d9d5c5018f728c2 406e23f5bba2878e8992528995f004bf 406e23f5bba2878e8992528995f004bf 1d9d5c5018f728c21d9d5c5018f728c2 OK OK
1C587F1C13924FEF f58028a087933b6f 305532286d6f295a305532286d6f295a 4d490dff959ed97d8366401e3cb1951b 4d490dff959ed97d8366401e3cb1951b 305532286d6f295a305532286d6f295a OK OK
0101010101010101 fe74fd2d5530ebb1 0123456789abcdef0123456789abcdef a5c1dae669efe31fb97ea9750e7a3f79 a5c1dae669efe31fb97ea9750e7a3f79 0123456789abcdef0123456789abcdef OK OK
1F1F1F1F0E0E0E0E 49e40ced6f189f18 0123456789abcdef0123456789abcdef 9d3b82d8d0d1741a609c987445d0b347 9d3b82d8d0d1741a609c987445d0b347 0123456789abcdef0123456789abcdef OK OK
E0FEE0FEF1FEF1FE 76739aa03368c439 0123456789abcdef0123456789abcdef bba73c10b305ec96a064e7c27400db3b bba73c10b305ec96a064e7c27400db3b 0123456789abcdef0123456789abcdef OK OK
0000000000000000 5f90b79fd3d9a198 ffffffffffffffffffffffffffffffff e511a43f5c0914ea0f6a2c35519e582b e511a43f5c0914ea0f6a2c35519e582b ffffffffffffffffffffffffffffffff OK OK
FFFFFFFFFFFFFFFF b29a303de68dbc2e 00000000000000000000000000000000 341997842e88bf476761691da86bc0c1 341997842e88bf476761691da86bc0c1 00000000000000000000000000000000 OK OK
0123456789ABCDEF b09e9cbc147e5995 00000000000000000000000000000000 f9977efef501f5fa4661dbc03eb9d56b f9977efef501f5fa4661dbc03eb9d56b 00000000000000000000000000000000 OK OK
FEDCBA9876543210 0bb99ce8dd9226cd ffffffffffffffffffffffffffffffff fb894dab9fc1a3e13289d635605afdb4 fb894dab9fc1a3e13289d635605afdb4 ffffffffffffffffffffffffffffffff OK OK php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/tests/vectors.txt 0000664 0000000 0000000 00000004202 11613020212 0025231 0 ustar 00root root 0000000 0000000 0000000000000000 0000000000000000 4EF997456198DD78
FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 51866FD5B85ECB8A
3000000000000000 1000000000000001 7D856F9A613063F2
1111111111111111 1111111111111111 2466DD878B963C9D
0123456789ABCDEF 1111111111111111 61F9C3802281B096
1111111111111111 0123456789ABCDEF 7D0CC630AFDA1EC7
FEDCBA9876543210 0123456789ABCDEF 0ACEAB0FC6A0A28D
7CA110454A1A6E57 01A1D6D039776742 59C68245EB05282B
0131D9619DC1376E 5CD54CA83DEF57DA B1B8CC0B250F09A0
07A1133E4A0B2686 0248D43806F67172 1730E5778BEA1DA4
3849674C2602319E 51454B582DDF440A A25E7856CF2651EB
04B915BA43FEB5B6 42FD443059577FA2 353882B109CE8F1A
0113B970FD34F2CE 059B5E0851CF143A 48F4D0884C379918
0170F175468FB5E6 0756D8E0774761D2 432193B78951FC98
43297FAD38E373FE 762514B829BF486A 13F04154D69D1AE5
07A7137045DA2A16 3BDD119049372802 2EEDDA93FFD39C79
04689104C2FD3B2F 26955F6835AF609A D887E0393C2DA6E3
37D06BB516CB7546 164D5E404F275232 5F99D04F5B163969
1F08260D1AC2465E 6B056E18759F5CCA 4A057A3B24D3977B
584023641ABA6176 004BD6EF09176062 452031C1E4FADA8E
025816164629B007 480D39006EE762F2 7555AE39F59B87BD
49793EBC79B3258F 437540C8698F3CFA 53C55F9CB49FC019
4FB05E1515AB73A7 072D43A077075292 7A8E7BFA937E89A3
49E95D6D4CA229BF 02FE55778117F12A CF9C5D7A4986ADB5
018310DC409B26D6 1D9D5C5018F728C2 D1ABB290658BC778
1C587F1C13924FEF 305532286D6F295A 55CB3774D13EF201
0101010101010101 0123456789ABCDEF FA34EC4847B268B2
1F1F1F1F0E0E0E0E 0123456789ABCDEF A790795108EA3CAE
E0FEE0FEF1FEF1FE 0123456789ABCDEF C39E072D9FAC631D
0000000000000000 FFFFFFFFFFFFFFFF 014933E0CDAFF6E4
FFFFFFFFFFFFFFFF 0000000000000000 F21E9A77B71C49BC
0123456789ABCDEF 0000000000000000 245946885754369A
FEDCBA9876543210 FFFFFFFFFFFFFFFF 6B5C5A9C5D9E0A5A
php-crypt-blowfish-1.1.0~RC2/Crypt_Blowfish-1.1.0RC2/tests/vectors_cbc.txt 0000664 0000000 0000000 00000006405 11613020212 0026047 0 ustar 00root root 0000000 0000000 0000000000000000 e4597a95ce318f00 00000000000000000000000000000000 a8272015924885b90bf6094d60ab675c
FFFFFFFFFFFFFFFF 034d82b5db2cbed1 ffffffffffffffffffffffffffffffff 28c67fb2a4b3b2c504b8883ce7208425
3000000000000000 011e71fc2a255c17 10000000000000011000000000000001 7b6703568bea9e2a3182dae3b2a99000
1111111111111111 a92a9a9991876002 11111111111111111111111111111111 d7236660f5c9ca453a2bc88479354d01
0123456789ABCDEF 4c84ccc79a0e5972 11111111111111111111111111111111 380634d33dc9c612f86d0670b26531ba
1111111111111111 3c752489ecf3b9df 0123456789abcdef0123456789abcdef eddbd4b4d26d2051b91e8942c9a98969
FEDCBA9876543210 649bfefed7c635db 0123456789abcdef0123456789abcdef 6e31bba9ba0ad1b8937f177578d0ec86
7CA110454A1A6E57 0eac175f06d64b43 01a1d6d03977674201a1d6d039776742 2ed1faff2c889f8963a17a837d9f1298
0131D9619DC1376E b9d5b0954546ea02 5cd54ca83def57da5cd54ca83def57da 2862fe3d1f200bb039a3c8f2c45c6d44
07A1133E4A0B2686 1bbdf27477bd347b 0248d43806f671720248d43806f67172 de05ce6ebe42a457f4c2a7e3d69bc864
3849674C2602319E 39265c919bbb6298 51454b582ddf440a51454b582ddf440a 83885e9372f9f786c6ec5e8502a17386
04B915BA43FEB5B6 a72b58bffc83cc6c 42fd443059577fa242fd443059577fa2 175779b150372a553969e790855a0440
0113B970FD34F2CE e624f22580b2107d 059b5e0851cf143a059b5e0851cf143a f201622c4ff1c39bf45cfb8636ec0708
0170F175468FB5E6 df27aef6116c4db0 0756d8e0774761d20756d8e0774761d2 cbaaa27d5e86850d3a42471407db2355
43297FAD38E373FE 802779d02d3094d1 762514b829bf486a762514b829bf486a 7a598cd34ce4ea34d1ccd1c6c565b655
07A7137045DA2A16 79b8c0ad914767ba 3bdd1190493728023bdd119049372802 e090aa274650f2811291b089055674ba
04689104C2FD3B2F 1a6ca98308d45d1f 26955f6835af609a26955f6835af609a 20b2ca4887db7f531c05c0f865b4971f
37D06BB516CB7546 50d75f78588ceaf2 164d5e404f275232164d5e404f275232 4c458a79e14a5ba347ea2f3083c35b2f
1F08260D1AC2465E c23190bc4bfa4574 6b056e18759f5cca6b056e18759f5cca 15b1a2cb9ec85501ee57cf712c4d843a
584023641ABA6176 0c92fd07e27f65d6 004bd6ef09176062004bd6ef09176062 78b93f61f96a1aaf49a0460a9792d6d0
025816164629B007 1fd632a79fd63187 480d39006ee762f2480d39006ee762f2 6476e6c069674d4a9b3c1adec86052d4
49793EBC79B3258F ba235548ef50bd1c 437540c8698f3cfa437540c8698f3cfa cf2f51cb1b752fcc46e97cb5a546f574
4FB05E1515AB73A7 0f002440be99b4d4 072d43a077075292072d43a077075292 404c68ec539b9db86cf4d4b07d57bcce
49E95D6D4CA229BF 731d038d1d35d9cd 02fe55778117f12a02fe55778117f12a d8c22249d6c46d923b87162a327c7b0a
018310DC409B26D6 4ab1336f128aaebf 1d9d5c5018f728c21d9d5c5018f728c2 406e23f5bba2878e8992528995f004bf
1C587F1C13924FEF f58028a087933b6f 305532286d6f295a305532286d6f295a 4d490dff959ed97d8366401e3cb1951b
0101010101010101 fe74fd2d5530ebb1 0123456789abcdef0123456789abcdef a5c1dae669efe31fb97ea9750e7a3f79
1F1F1F1F0E0E0E0E 49e40ced6f189f18 0123456789abcdef0123456789abcdef 9d3b82d8d0d1741a609c987445d0b347
E0FEE0FEF1FEF1FE 76739aa03368c439 0123456789abcdef0123456789abcdef bba73c10b305ec96a064e7c27400db3b
0000000000000000 5f90b79fd3d9a198 ffffffffffffffffffffffffffffffff e511a43f5c0914ea0f6a2c35519e582b
FFFFFFFFFFFFFFFF b29a303de68dbc2e 00000000000000000000000000000000 341997842e88bf476761691da86bc0c1
0123456789ABCDEF b09e9cbc147e5995 00000000000000000000000000000000 f9977efef501f5fa4661dbc03eb9d56b
FEDCBA9876543210 0bb99ce8dd9226cd ffffffffffffffffffffffffffffffff fb894dab9fc1a3e13289d635605afdb4
php-crypt-blowfish-1.1.0~RC2/package.xml 0000664 0000000 0000000 00000014354 11613020212 0020067 0 ustar 00root root 0000000 0000000
Crypt_Blowfish
pear.php.net
Allows for quick two-way blowfish encryption without requiring the MCrypt PHP extension.
This package allows you to perform two-way blowfish encryption on the fly using only PHP. This package does not require the MCrypt PHP extension to work, although it can make use of it if available.
Matthew Fonda
mfonda
mfonda@php.net
yes
Philippe Jausions
jausions
jausions@php.net
yes
2008-08-30
1.1.0RC2
1.1.0RC2
beta
beta
New BSD
* Bump to package.xml v2.0
* Algorithm tweak for bug #12906 and bug #10162
* Switch to new BSD license from PHP 3.0 license
4.2.0
1.7.2
1.1.0RC2
1.1.0RC2
snapshot
devel
2008-08-30
New BSD
* Bump to package.xml v2.0
* Algorithm tweak for bug #12906 and bug #10162
* Switch to new BSD license from PHP 3.0 license
1.1.0RC1
1.1.0RC1
beta
beta
2006-09-08
PHP
* Added CBC mode support (Req #7256)
* Added factory() pattern (now prefered method to create instance)
* Deprecated Crypt_Blowfish() constructor
* Reorganized code into subclasses for PHP-only (ECB & CBC modes) and MCrypt implementations
* Ability to disable the use of the MCrypt extension if needed (Req #7298)
* Now returns PEAR_Error objects instead of dying (Req #4555)
* Catch initialization problem in constructor (Bug #7299)
* Fix for XOR problem with floats on some systems (Bug #6159)
1.0.1
1.0.1
stable
stable
2005-05-30
PHP
Uses mcrypt if available
1.0.0
1.0.0
stable
stable
2005-04-26
PHP
Initial stable release
0.8.1
0.8.1
beta
beta
2005-03-23
PHP
Fixed serious bug in release 0.8.0 causing text to not be encrypted properly.
0.8.0
0.8.0
beta
beta
2005-03-03
PHP
* Increased encryption and decryption speed
* init() method is now private
* Removed unnesessary defines
* Deprecated isReady() method
0.7.0
0.7.0
beta
beta
2005-02-22
PHP
This is the initial release.