/**
  * Rest api 'GET' call (Curl lib)
  * function overriden
  * @author Mustafa Zeynel Dağlı
  * @version 0.2
  */
 public function restApiDefaultCall()
 {
     /*$encrypt = new \vendor\Encrypt\EncryptManual('test');
       $encryptValue = $encrypt->encrypt_times(4, 'kullanici:sifre');
       //print_r('--'.$encryptValue.'--');
       $decryptValue = $encrypt->decrypt_times(4, $encryptValue);
       //print_r('??'.$decryptValue.'??');*/
     $this->setEncryptClass();
     $params = null;
     $params = $this->getRequestParams();
     $this->hmacObj->setPublicKey($params['pk']);
     $this->hmacObj->setPrivateKey('e249c439ed7697df2a4b045d97d4b9b7e1854c3ff8dd668c779013653913572e');
     $this->hmacObj->setRequestParams($this->getRequestParamsWithoutPublicKey());
     $this->hmacObj->makeHmac();
     //print_r($this->hmacObj);
     $preparedParams = $this->prepareGetParams();
     //$preparedParams = $this->prepareGetParams('', array('pk'));
     if (($ch = @curl_init()) == false) {
         header("HTTP/1.1 500", true, 500);
         die("Cannot initialize CURL session. Is CURL enabled for your PHP installation?");
     }
     //print_r($this->restApiFullPathUrl.'?'.$preparedParams);
     //print_r($this->endPointUrl.$this->getEndPointFunction().'?'.$preparedParams);
     curl_setopt($ch, CURLOPT_URL, $this->restApiFullPathUrl . '?' . $preparedParams);
     //Url together with parameters
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     //Return data instead printing directly in Browser
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->getCallTimeOut());
     //Timeout (Default 7 seconds)
     curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Public: ' . $this->hmacObj->getPublicKey() . '', 'X-Hash: ' . $this->hmacObj->getHash() . '', 'X-Nonce:' . $this->hmacObj->getNonce(), 'X-TimeStamp:' . $this->hmacObj->setTimeStamp($this->encryptClass->encrypt('' . time() . ''))));
     curl_setopt($ch, CURLOPT_HEADER, 0);
     // we don’t want also to get the header information that we receive.
     //sleep(10);
     $response = curl_exec($ch);
     $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     if ($response == false) {
         die("curl_exec() failed. Error: " . curl_error($ch));
     }
     return $response;
 }
 /**
  * public key control processes has been wrapped
  * @param array $params
  * @return mixed array | null
  * @throws Exception
  * @author Mustafa Zeynel Dağlı
  * @since 0.3 27/01/2016
  */
 private function publicKeyProcessControler($params)
 {
     $resultSet;
     if ($this->isServicePkRequired) {
         /**
          * getting private key due to public key
          * @author Mustafa Zeynel Dağlı
          * @since 05/01/2016 version 0.3
          */
         if (isset($params['pk'])) {
             $resultSet = $this->dalObject->getPrivateKey($params['pk']);
         }
         /**
          * if not get private key due to public key
          * forward to private not found
          * @author Mustafa Zeynel Dağlı
          * @since 06/01/2016 version 0.3
          */
         if (empty($resultSet['resultSet'])) {
             $this->privateKeyNotFoundRedirect();
         }
         /**
          * if service has to be secure then prepare hash for public and private keys
          * @author Mustafa Zeynel Dağlı
          * @since version 0.3 06/01/2016
          */
         if (!isset($resultSet['resultSet'][0]['sf_private_key_value'])) {
             throw new Exception('SlimHmacProxy->restApiDefaultCall() method private key not found!!');
         }
         if (!isset($params['pk'])) {
             throw new Exception('SlimHmacProxy->restApiDefaultCall() method public key not found!!');
         } else {
             $this->hmacObj->setPublicKey($params['pk']);
         }
         //$this->hmacObj->setPrivateKey('e249c439ed7697df2a4b045d97d4b9b7e1854c3ff8dd668c779013653913572e');
         $this->hmacObj->setPrivateKey($resultSet['resultSet'][0]['sf_private_key_value']);
         $this->hmacObj->setRequestParams($this->getRequestParamsWithoutPublicKey());
         $this->hmacObj->makeHmac();
         //print_r($this->hmacObj);
         return $resultSet;
     } else {
         return null;
     }
 }