public function testNewApi() { $text = "testme"; $key = "frop"; $salt = sha1("saltgeneration"); $crypt = new ar_crypt($key, MCRYPT_RIJNDAEL_256, 1); $key = $crypt->pbkdf2($key, $salt); $crypt = new ar_crypt($key, MCRYPT_RIJNDAEL_256, 1); $encoded = $crypt->crypt($text); $decoded = $crypt->decrypt($encoded); $this->assertEquals($text, $decoded); }
function ldDecodeCookie($cookie) { global $AR; $data = json_decode($cookie, true); if (is_null($data)) { if (isset($AR->sessionCryptoKey)) { $key = base64_decode($AR->sessionCryptoKey); $crypto = new ar_crypt($key, MCRYPT_RIJNDAEL_256, 1); $data = json_decode($crypto->decrypt($cookie), true); } } return $data; }
protected function unserialize($value, $path) { if ($value[0] === "O" && $value[1] === ":") { return unserialize($value); } else { if ($this->config['crypto'] instanceof \Closure) { $crypto = $this->config['crypto'](); list($token, $datavalue) = explode(':', $value, 2); foreach ($crypto as $cryptoConfig) { $cryptoToken = $cryptoConfig['token']; if ($token === $cryptoToken) { $value = $datavalue; switch ($cryptoConfig['method']) { case 'ar_crypt': $key = base64_decode($cryptoConfig['key']); $crypto = new ar_crypt($key, $cryptoConfig['crypto'], 1); $decryptedValue = $crypto->decrypt($value); break; default: break; } } } if ($decryptedValue[0] === "O" && $decryptedValue[1] === ":") { return unserialize($decryptedValue); } else { $dummy = unserialize('O:6:"object":7:{s:5:"value";s:0:"";s:3:"nls";O:6:"object":2:{s:7:"default";s:2:"nl";s:4:"list";a:1:{s:2:"nl";s:10:"Nederlands";}}s:2:"nl";O:6:"object":1:{s:4:"name";s:14:"Crypted object";}s:6:"config";O:6:"object":2:{s:10:"owner_name";s:6:"Nobody";s:5:"owner";s:6:"nobody";}s:5:"mtime";i:0;s:5:"ctime";i:0;s:5:"muser";s:6:"nobody";}'); $dummy->failedDecrypt = true; $dummy->originalData = $value; return $dummy; } } } }