_accessKey; $parameters['SignatureVersion'] = $this->_signatureVersion; $parameters['Version'] = $this->_apiVersion; if(!isset($parameters['Timestamp'])) { $parameters['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z', time()+10); } $data = $this->_signParameters($url, $parameters); return $data; } /** * Computes the RFC 2104-compliant HMAC signature for request parameters * * This implements the Amazon Web Services signature, as per the following * specification: * * 1. Sort all request parameters (including SignatureVersion and * excluding Signature, the value of which is being created), * ignoring case. * * 2. Iterate over the sorted list and append the parameter name (in its * original case) and then its value. Do not URL-encode the parameter * values before constructing this string. Do not use any separator * characters when appending strings. * * @param string $queue_url Queue URL * @param array $parameters the parameters for which to get the signature. * * @return string the signed data. */ protected function _signParameters($url, array &$paramaters) { $data = ''; uksort($paramaters, 'strcasecmp'); unset($paramaters['Signature']); foreach($paramaters as $key => $value) { $data .= $key . $value; } $hmac = Zend_Crypt_Hmac::compute($this->_secretKey, 'SHA1', $data, Zend_Crypt_Hmac::BINARY); $paramaters['Signature'] = base64_encode($hmac); return $data; } }