You are here

function OAuthSignatureMethod_HMAC_SHA1::signature in Lingotek Translation 7.3

Same name and namespace in other branches
  1. 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

OAuthSignatureMethod_HMAC_SHA1

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);
}