9f4a31f1dafd46807894901f795335caebc7e08c
[Packages/TYPO3.CMS.git] / typo3 / sysext / adodb / adodb / session / adodb-encrypt-mcrypt.php
1 <?php
2
3
4 /*
5 V4.81 3 May 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
6 Contributed by Ross Smith (adodb@netebb.com).
7 Released under both BSD license and Lesser GPL library license.
8 Whenever there is any discrepancy between the two licenses,
9 the BSD license will take precedence.
10 Set tabs to 4 for best viewing.
11
12 */
13
14 if (!function_exists('mcrypt_encrypt')) {
15 trigger_error('Mcrypt functions are not available', E_USER_ERROR);
16 return 0;
17 }
18
19 /**
20 */
21 class ADODB_Encrypt_MCrypt {
22 /**
23 */
24 var $_cipher;
25
26 /**
27 */
28 var $_mode;
29
30 /**
31 */
32 var $_source;
33
34 /**
35 */
36 function getCipher() {
37 return $this->_cipher;
38 }
39
40 /**
41 */
42 function setCipher($cipher) {
43 $this->_cipher = $cipher;
44 }
45
46 /**
47 */
48 function getMode() {
49 return $this->_mode;
50 }
51
52 /**
53 */
54 function setMode($mode) {
55 $this->_mode = $mode;
56 }
57
58 /**
59 */
60 function getSource() {
61 return $this->_source;
62 }
63
64 /**
65 */
66 function setSource($source) {
67 $this->_source = $source;
68 }
69
70 /**
71 */
72 function ADODB_Encrypt_MCrypt($cipher = null, $mode = null, $source = null) {
73 if (!$cipher) {
74 $cipher = MCRYPT_RIJNDAEL_256;
75 }
76 if (!$mode) {
77 $mode = MCRYPT_MODE_ECB;
78 }
79 if (!$source) {
80 $source = MCRYPT_RAND;
81 }
82
83 $this->_cipher = $cipher;
84 $this->_mode = $mode;
85 $this->_source = $source;
86 }
87
88 /**
89 */
90 function write($data, $key) {
91 $iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode);
92 $iv = mcrypt_create_iv($iv_size, $this->_source);
93 return mcrypt_encrypt($this->_cipher, $key, $data, $this->_mode, $iv);
94 }
95
96 /**
97 */
98 function read($data, $key) {
99 $iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode);
100 $iv = mcrypt_create_iv($iv_size, $this->_source);
101 $rv = mcrypt_decrypt($this->_cipher, $key, $data, $this->_mode, $iv);
102 return rtrim($rv, "\0");
103 }
104
105 }
106
107 return 1;
108
109 ?>