diff options
| author | Nathan Kinkade <nath@nkinka.de> | 2008-03-16 20:42:30 +0000 |
|---|---|---|
| committer | Nathan Kinkade <nath@nkinka.de> | 2008-03-16 20:42:30 +0000 |
| commit | 6d0fbeb0a7fde0cc8bae6c9944ea6b017d96968a (patch) | |
| tree | 7da954e7aaa5c7a78bd0c0cc6911f718670ea37a /lib/adodb/session/adodb-encrypt-mcrypt.php | |
| parent | 32482b90446a7974e4aa1a392a79f1c8e18ed200 (diff) | |
Moved some external packages into lib to make system more self contained
Diffstat (limited to 'lib/adodb/session/adodb-encrypt-mcrypt.php')
| -rw-r--r-- | lib/adodb/session/adodb-encrypt-mcrypt.php | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/lib/adodb/session/adodb-encrypt-mcrypt.php b/lib/adodb/session/adodb-encrypt-mcrypt.php new file mode 100644 index 0000000..a047579 --- /dev/null +++ b/lib/adodb/session/adodb-encrypt-mcrypt.php @@ -0,0 +1,109 @@ +<?php + + +/* +V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. + Contributed by Ross Smith (adodb@netebb.com). + Released under both BSD license and Lesser GPL library license. + Whenever there is any discrepancy between the two licenses, + the BSD license will take precedence. + Set tabs to 4 for best viewing. + +*/ + +if (!function_exists('mcrypt_encrypt')) { + trigger_error('Mcrypt functions are not available', E_USER_ERROR); + return 0; +} + +/** + */ +class ADODB_Encrypt_MCrypt { + /** + */ + var $_cipher; + + /** + */ + var $_mode; + + /** + */ + var $_source; + + /** + */ + function getCipher() { + return $this->_cipher; + } + + /** + */ + function setCipher($cipher) { + $this->_cipher = $cipher; + } + + /** + */ + function getMode() { + return $this->_mode; + } + + /** + */ + function setMode($mode) { + $this->_mode = $mode; + } + + /** + */ + function getSource() { + return $this->_source; + } + + /** + */ + function setSource($source) { + $this->_source = $source; + } + + /** + */ + function ADODB_Encrypt_MCrypt($cipher = null, $mode = null, $source = null) { + if (!$cipher) { + $cipher = MCRYPT_RIJNDAEL_256; + } + if (!$mode) { + $mode = MCRYPT_MODE_ECB; + } + if (!$source) { + $source = MCRYPT_RAND; + } + + $this->_cipher = $cipher; + $this->_mode = $mode; + $this->_source = $source; + } + + /** + */ + function write($data, $key) { + $iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode); + $iv = mcrypt_create_iv($iv_size, $this->_source); + return mcrypt_encrypt($this->_cipher, $key, $data, $this->_mode, $iv); + } + + /** + */ + function read($data, $key) { + $iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode); + $iv = mcrypt_create_iv($iv_size, $this->_source); + $rv = mcrypt_decrypt($this->_cipher, $key, $data, $this->_mode, $iv); + return rtrim($rv, "\0"); + } + +} + +return 1; + +?> |
