in util/php/src/Client.php [77:102]
public static function getSignature($request, $accessKeyId, $accessKeySecret)
{
$pathname = $request->pathname ? $request->pathname : '';
$headers = $request->headers;
$query = $request->query ? $request->query : [];
$get_from_headers = function ($key, $default = '') use ($headers) {
return isset($headers[$key]) ? $headers[$key] : $default;
};
$result = $request->method . "\n" .
$get_from_headers('accept') . "\n" .
$get_from_headers('content-md5') . "\n" .
$get_from_headers('content-type') . "\n" .
$get_from_headers('date') . "\n";
$canonicalizedHeaders = RoaUtils::getCanonicalizedHeaders($headers, 'x-opensearch-');
$canonicalizedResource = RoaUtils::getCanonicalizedResource($pathname, $query);
$signString = $result . $canonicalizedHeaders . $canonicalizedResource;
return 'OPENSEARCH ' .
$accessKeyId . ':' . base64_encode(
hash_hmac('sha1', $signString, $accessKeySecret, true)
);
}