public static function Decrypt($urlEncB64encrypted) { $config = Zend_Registry::get("__CONFIG__"); $key = isset($config['mcrypt']['key']) ? $config['mcrypt']['key'] : self::$key; $vector = isset($config['mcrypt']['vector']) ? $config['mcrypt']['vector'] : self::$vector; $configMCrypt = array('adapter' => 'mcrypt', 'key' => $key, 'vector' => $vector); $filter = new Zend_Filter_Decrypt($configMCrypt); $encrypted = base64_decode(strtr($urlEncB64encrypted, '-_,', '+/=')); $json = $filter->filter($encrypted); return Zend_Json::decode(trim($json)); }
/** * Defined by Zend_Filter_Interface * * Decrypts the file $value with the defined settings * * @param string $value Full path of file to change * @return string The filename which has been set, or false when there were errors */ public function filter($value) { if (!file_exists($value)) { throw new Zend_Filter_Exception("File '{$value}' not found"); } if (!isset($this->_filename)) { $this->_filename = $value; } if (file_exists($this->_filename) and !is_writable($this->_filename)) { throw new Zend_Filter_Exception("File '{$this->_filename}' is not writable"); } $content = file_get_contents($value); if (!$content) { throw new Zend_Filter_Exception("Problem while reading file '{$value}'"); } $decrypted = parent::filter($content); $result = file_put_contents($this->_filename, $decrypted); if (!$result) { throw new Zend_Filter_Exception("Problem while writing file '{$this->_filename}'"); } return $this->_filename; }
/** * Ensures that the filter allows de/encryption * * @return void */ public function testEncryptionWithDecryptionOpenssl() { if (!extension_loaded('openssl')) { $this->markTestSkipped('Openssl extension not installed'); } $filter = new Zend_Filter_Encrypt(array('adapter' => 'Openssl')); $filter->setPublicKey(dirname(__FILE__) . '/_files/publickey.pem'); $output = $filter->filter('teststring'); $envelopekeys = $filter->getEnvelopeKey(); $this->assertNotEquals('teststring', $output); $filter = new Zend_Filter_Decrypt(array('adapter' => 'Openssl')); $filter->setPassphrase('zPUp9mCzIrM7xQOEnPJZiDkBwPBV9UlITY0Xd3v4bfIwzJ12yPQCAkcR5BsePGVw RK6GS5RwXSLrJu9Qj8+fk0wPj6IPY5HvA9Dgwh+dptPlXppeBm3JZJ+92l0DqR2M ccL43V3Z4JN9OXRAfGWXyrBJNmwURkq7a2EyFElBBWK03OLYVMevQyRJcMKY0ai+ tmnFUSkH2zwnkXQfPUxg9aV7TmGQv/3TkK1SziyDyNm7GwtyIlfcigCCRz3uc77U Izcez5wgmkpNElg/D7/VCd9E+grTfPYNmuTVccGOes+n8ISJJdW0vYX1xwWv5l bK22CwD/l7SMBOz4M9XH0Jb0OhNxLza4XMDu0ANMIpnkn1KOcmQ4gB8fmAbBt'); $filter->setPrivateKey(dirname(__FILE__) . '/_files/privatekey.pem'); $filter->setEnvelopeKey($envelopekeys); $input = $filter->filter($output); $this->assertEquals('teststring', trim($input)); }
/** * @return void */ public function testCallingUnknownMethod() { if (!extension_loaded('mcrypt')) { $this->markTestSkipped('Mcrypt extension not installed'); } $filter = new Zend_Filter_Decrypt(); try { $filter->getUnknownMethod(); $this->fail('Exception expected on calling a non existing method'); } catch (Zend_Filter_Exception $e) { $this->assertContains('Unknown method', $e->getMessage()); } }
/** * Decrypt url for password recovery * * @param String $urlEncrypt * @return array **/ private function decryptUrl($urlEncrypt) { if (empty($urlEncrypt)) { return false; } $tableUser = new Zend_Db_Table('user'); $decrypt = new Zend_Filter_Decrypt(); $decrypt->setVector(MAIL_VECTOR); $decrypted = $decrypt->filter($urlEncrypt); $array = explode('/', $decrypted); $user = $tableUser->fetchRow(array('id =?' => $array[1])); $date = date("d/m/Y", strtotime($array[3])); $data['user'] = $user; $data['date'] = $date; return $data; }