Beispiel #1
0
 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);
 }
Beispiel #2
0
function ldEncodeCookie($cookie)
{
    global $AR;
    $data = json_encode($cookie);
    if (isset($AR->sessionCryptoKey)) {
        $key = base64_decode($AR->sessionCryptoKey);
        $crypto = new ar_crypt($key, MCRYPT_RIJNDAEL_256, 1);
        $encdata = $crypto->crypt($data);
        if ($encdata !== false) {
            $data = $encdata;
        }
    }
    return $data;
}
Beispiel #3
0
 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;
             }
         }
     }
 }