class LingotekOAuthSignatureMethod_HMAC_SHA1 in Lingotek Translation 7.6
Same name and namespace in other branches
- 7.7 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_HMAC_SHA1.php \LingotekOAuthSignatureMethod_HMAC_SHA1
- 7.4 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_HMAC_SHA1.php \LingotekOAuthSignatureMethod_HMAC_SHA1
- 7.5 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_HMAC_SHA1.php \LingotekOAuthSignatureMethod_HMAC_SHA1
Hierarchy
Expanded class hierarchy of LingotekOAuthSignatureMethod_HMAC_SHA1
File
- lib/
oauth-php/ library/ signature_method/ LingotekOAuthSignatureMethod_HMAC_SHA1.php, line 37
View source
class LingotekOAuthSignatureMethod_HMAC_SHA1 extends LingotekOAuthSignatureMethod {
public function name() {
return 'HMAC-SHA1';
}
/**
* Calculate the signature using HMAC-SHA1
* This function is copyright Andy Smith, 2007.
*
* @param LingotekOAuthRequest request
* @param string base_string
* @param string consumer_secret
* @param string token_secret
* @return string
*/
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);
}
/**
* Check if the request signature corresponds to the one calculated for the request.
*
* @param LingotekOAuthRequest request
* @param string base_string data to be signed, usually the base string, can be a request body
* @param string consumer_secret
* @param string token_secret
* @param string signature from the request, still urlencoded
* @return string
*/
public function verify($request, $base_string, $consumer_secret, $token_secret, $signature) {
$a = $request
->urldecode($signature);
$b = $request
->urldecode($this
->signature($request, $base_string, $consumer_secret, $token_secret));
// We have to compare the decoded values
$valA = base64_decode($a);
$valB = base64_decode($b);
// Crude binary comparison
return rawurlencode($valA) == rawurlencode($valB);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LingotekOAuthSignatureMethod_HMAC_SHA1:: |
public | function |
* Return the name of this signature
*
* Overrides LingotekOAuthSignatureMethod:: |
|
LingotekOAuthSignatureMethod_HMAC_SHA1:: |
function |
* Calculate the signature using HMAC-SHA1
* This function is copyright Andy Smith, 2007.
*
* Overrides LingotekOAuthSignatureMethod:: |
||
LingotekOAuthSignatureMethod_HMAC_SHA1:: |
public | function |
* Check if the request signature corresponds to the one calculated for the request.
*
* Overrides LingotekOAuthSignatureMethod:: |