Пример #1
0
 public static function Encrypt($params)
 {
     $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;
     $expire = isset($config['mcrypt']['expire']) ? $config['mcrypt']['expire'] : self::$expire;
     $configMCrypt = array('adapter' => 'mcrypt', 'key' => $key, 'vector' => $vector);
     if (is_string($params)) {
         $params = array("param" => $params);
     }
     if (!array_key_exists("expire", $params)) {
         $nextTime = mktime(Date('H') + $expire, Date('i'), 0, Date('m'), Date('d'), Date('Y'));
         $params["expire"] = $nextTime;
     }
     /** @var $filter Zend_Filter_Encrypt */
     $filter = new Zend_Filter_Encrypt($configMCrypt);
     /** json is smaller than serialize  */
     $json = Zend_Json::encode($params);
     $encrypted = $filter->filter($json);
     return strtr(base64_encode($encrypted), '+/=', '-_,');
 }
Пример #2
0
 /**
  * Defined by Zend_Filter_Interface
  *
  * Encrypts 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}'");
     }
     $encrypted = parent::filter($content);
     $result = file_put_contents($this->_filename, $encrypted);
     if (!$result) {
         throw new Zend_Filter_Exception("Problem while writing file '{$this->_filename}'");
     }
     return $this->_filename;
 }
Пример #3
0
 /**
  * @return void
  */
 public function testCallingUnknownMethod()
 {
     if (!extension_loaded('mcrypt')) {
         $this->markTestSkipped('Mcrypt extension not installed');
     }
     $filter = new Zend_Filter_Encrypt();
     try {
         $filter->getUnknownMethod();
         $this->fail('Exception expected on calling a non existing method');
     } catch (Zend_Filter_Exception $e) {
         $this->assertContains('Unknown method', $e->getMessage());
     }
 }
Пример #4
0
    /**
     * 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));
    }
Пример #5
0
 /**
  * Encrypt url for password recovery
  *
  * @param Object $user
  * @return String
  **/
 private function encryptUrl($user)
 {
     if (!is_object($user)) {
         throw new Exception('User is not object');
     }
     $encrypt = new Zend_Filter_Encrypt();
     $encrypt->setVector(MAIL_VECTOR);
     $hash = $encrypt->filter("id/{$user->id}/date/" . date('Y-m-d'));
     return $this->view->serverUrl() . $this->view->baseUrl() . "/forgot/recovery?key=" . urlencode(base64_encode($hash));
 }