/**
  * Returns decrypted input parameter
  * @param $key
  * @return String
  */
 public function get($key)
 {
     if (isset($this->decryptedParams[$key])) {
         return $this->decryptedParams[$key];
     }
     $value = $this->crypt->symmetricDecrypt(Base64::UrlDecode($this->params[$key]));
     $this->decryptedParams[$key] = $value;
     return $value;
 }
 /**
  * @param $route
  * @param $request
  * @param $response
  */
 public function filter($route, $request, $response)
 {
     $content = $response->getOriginalContent();
     if (!is_string($content)) {
         $content = json_encode($content);
     }
     $content = Base64::UrlEncode($this->crypt->symmetricEncrypt($content));
     $sign = Base64::UrlEncode($this->crypt->sign($content));
     $response->setContent(['data' => $content, 'sign' => $sign]);
 }
 /**
  * Encrypts data using RSA
  * @param String $data Data to encrypt
  * @return String
  */
 public function asymmetricEncrypt($data)
 {
     if (!$this->isRsaInitialized) {
         $this->initAsymmetric();
     }
     return Base64::UrlEncode($this->rsa->encrypt($data));
 }