function OAuthSignatureMethod_HMAC_SHA1::signature in Lingotek Translation 7.3
Same name and namespace in other branches
- 7.2 lib/oauth-php/library/signature_method/OAuthSignatureMethod_HMAC_SHA1.php \OAuthSignatureMethod_HMAC_SHA1::signature()
* Calculate the signature using HMAC-SHA1 * This function is copyright Andy Smith, 2007. * *
Parameters
OAuthRequest request: * @param string base_string * @param string consumer_secret * @param string token_secret * @return string
Overrides OAuthSignatureMethod::signature
1 call to OAuthSignatureMethod_HMAC_SHA1::signature()
- OAuthSignatureMethod_HMAC_SHA1::verify in lib/
oauth-php/ library/ signature_method/ OAuthSignatureMethod_HMAC_SHA1.php - * Check if the request signature corresponds to the one calculated for the request. * *
File
- lib/
oauth-php/ library/ signature_method/ OAuthSignatureMethod_HMAC_SHA1.php, line 55
Class
Code
function signature($request, $base_string, $consumer_secret, $token_secret) {
$key = $request
->urlencode($consumer_secret) . '&' . $request
->urlencode($token_secret);
if (function_exists('hash_hmac')) {
$signature = base64_encode(hash_hmac("sha1", $base_string, $key, true));
}
else {
$blocksize = 64;
$hashfunc = 'sha1';
if (strlen($key) > $blocksize) {
$key = pack('H*', $hashfunc($key));
}
$key = str_pad($key, $blocksize, chr(0x0));
$ipad = str_repeat(chr(0x36), $blocksize);
$opad = str_repeat(chr(0x5c), $blocksize);
$hmac = pack('H*', $hashfunc(($key ^ $opad) . pack('H*', $hashfunc(($key ^ $ipad) . $base_string))));
$signature = base64_encode($hmac);
}
return $request
->urlencode($signature);
}