diff options
Diffstat (limited to 'vendor/eher/oauth/src/Eher/OAuth/HmacSha1.php')
-rw-r--r-- | vendor/eher/oauth/src/Eher/OAuth/HmacSha1.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/eher/oauth/src/Eher/OAuth/HmacSha1.php b/vendor/eher/oauth/src/Eher/OAuth/HmacSha1.php new file mode 100644 index 0000000..be7da63 --- /dev/null +++ b/vendor/eher/oauth/src/Eher/OAuth/HmacSha1.php @@ -0,0 +1,31 @@ +<?php + +namespace Eher\OAuth; + +/** + * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] + * where the Signature Base String is the text and the key is the concatenated values (each first + * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' + * character (ASCII code 38) even if empty. + * - Chapter 9.2 ("HMAC-SHA1") + */ +class HmacSha1 extends SignatureMethod { + function get_name() { + return "HMAC-SHA1"; + } + + public function build_signature($request, $consumer, $token) { + $base_string = $request->get_signature_base_string(); + $request->base_string = $base_string; + + $key_parts = array( + $consumer->secret, + ($token) ? $token->secret : "" + ); + + $key_parts = Util::urlencode_rfc3986($key_parts); + $key = implode('&', $key_parts); + + return base64_encode(hash_hmac('sha1', $base_string, $key, true)); + } +} |