/home/techb158/ileadtechnology.com/SSM/vendor/nexmo/client-core/src/Client
NameSizeModeActions
Callback/-0755rm
Credentials/-0755rm
Exception/-0755rm
Factory/-0755rm
Request/-0755rm
Response/-0755rm
ClientAwareInterface.php3250644editdlrm
ClientAwareTrait.php6100644editdlrm
Signature.php35580644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/vendor/nexmo/client-core/src/Client/Signature.php (3558B)
params = $params; $this->signed = $params; if (!isset($this->signed['timestamp'])) { $this->signed['timestamp'] = time(); } //remove signature if present unset($this->signed['sig']); //sort params ksort($this->signed); $signed = []; foreach ($this->signed as $key => $value) { $signed[$key] = str_replace(array("&", "="), "_", $value); } //create base string $base = '&'.urldecode(http_build_query($signed)); $this->signed['sig'] = $this->sign($signatureMethod, $base, $secret); } protected function sign($signatureMethod, $data, $secret) { switch ($signatureMethod) { case 'md5hash': // md5hash needs the secret appended $data .= $secret; return md5($data); break; case 'md5': case 'sha1': case 'sha256': case 'sha512': return strtoupper(hash_hmac($signatureMethod, $data, $secret)); break; default: throw new Exception('Unknown signature algorithm: '.$signatureMethod.'. Expected: md5hash, md5, sha1, sha256, or sha512'); } } /** * Get the original parameters. * * @return array */ public function getParams() { return $this->params; } /** * Get the signature for the parameters. * * @return string */ public function getSignature() { return $this->signed['sig']; } /** * Get a full set of parameters including the signature and timestamp. * * @return array */ public function getSignedParams() { return $this->signed; } /** * Check that a signature (or set of parameters) is valid. * * First instantiate a Signature object: this will drop any supplied * signature parameter and calculate the correct one. Then call this * method and supply the signature that came in with the request. * * @param array| string $signature The incoming sig parameter to check * (or all incoming params) * @return bool * @throws \InvalidArgumentException */ public function check($signature) { if (is_array($signature) and isset($signature['sig'])) { $signature = $signature['sig']; } if (!is_string($signature)) { throw new \InvalidArgumentException('signature must be string, or present in array or parameters'); } return strtolower($signature) == strtolower($this->signed['sig']); } /** * Allow easy comparison. * * @return string */ public function __toString() { return $this->getSignature(); } }