private function getCanonicalRequestSignature(HTTPSFuture $future, $body_signature)
 {
     $http_method = $future->getMethod();
     $path = $this->getPath($future);
     $path = rawurlencode($path);
     $path = str_replace('%2F', '/', $path);
     $canonical_parameters = $this->getCanonicalParameterList($future);
     $canonical_headers = $this->getCanonicalHeaderList($future);
     $signed_headers = $this->getSignedHeaderList($future);
     $canonical_request = $http_method . "\n" . $path . "\n" . $canonical_parameters . "\n" . $canonical_headers . "\n" . "\n" . $signed_headers . "\n" . $body_signature;
     return hash('sha256', $canonical_request);
 }