예제 #1
0
파일: Api.php 프로젝트: ondrs/otomoto-api
 /**
  * @param null|string $input
  * @return string
  */
 public function generateKey($input = NULL)
 {
     $text = $input === NULL ? $this->username . ';' . date('d/m/Y H:i:s') . ';' . $this->ip : $input;
     $cipher = new \Crypt_Rijndael();
     $cipher->setKeyLength(256);
     $cipher->setBlockLength(128);
     $cipher->setKey(base64_decode($this->key));
     $cipher->setIV(base64_decode($this->iv));
     return base64_encode($cipher->encrypt($text));
 }
예제 #2
0
 /**
  * Decrypt the ciphertext
  * @param string $cipherText
  * @return object \stdClass Unserialized token
  */
 public function decrypt($cipherText)
 {
     // Decryption: prefer mcrypt, if available (since it can decrypt data encrypted by either mcrypt or phpseclib)
     $cipherText = base64_decode($cipherText);
     $iv = substr($cipherText, 0, self::IV_SIZE);
     $cipherText = substr($cipherText, self::IV_SIZE);
     if (function_exists('mcrypt_decrypt')) {
         $token = @mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, $cipherText, MCRYPT_MODE_CBC, $iv);
     } else {
         global $updraftplus;
         $updraftplus->ensure_phpseclib('Crypt_Rijndael', 'Crypt/Rijndael');
         $rijndael = new Crypt_Rijndael();
         $rijndael->setKey($this->key);
         $rijndael->setIV($iv);
         $token = $rijndael->decrypt($cipherText);
     }
     return $token;
 }
예제 #3
0
 /**
  * Sets the initialization vector. (optional)
  *
  * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used.  If not explictly set, it'll be assumed
  * to be all zero's.
  *
  * @access public
  * @param String $iv
  */
 function setIV($iv)
 {
     parent::setIV($iv);
     if (CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT) {
         $this->changed = true;
     }
 }
예제 #4
0
 function osc_decrypt_alert($string) {
     $key = hash("sha256", osc_get_alert_private_key(), true);
     if(function_exists('mcrypt_module_open')) {
         $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
         $cipherText = '';
         if (mcrypt_generic_init($cipher, $key, $key) != -1) {
             $cipherText = mdecrypt_generic($cipher, $string);
             mcrypt_generic_deinit($cipher);
         }
         return trim(substr($cipherText, 32));
     };
     require_once LIB_PATH . 'phpseclib/Crypt/Rijndael.php';
     $cipher = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_CBC);
     $cipher->disablePadding();
     $cipher->setBlockLength(256);
     $cipher->setKey($key);
     $cipher->setIV($key);
     return trim(substr($cipher->decrypt($string), 32));
 }