annotate default/assets/vendors/theme-widgets/vendor/abraham/twitteroauth/src/HmacSha1.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 * The MIT License
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 * Copyright (c) 2007 Andy Smith
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 namespace Abraham\TwitterOAuth;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 * where the Signature Base String is the text and the key is the concatenated values (each first
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 * character (ASCII code 38) even if empty.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 * - Chapter 9.2 ("HMAC-SHA1")
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 class HmacSha1 extends SignatureMethod
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 * {@inheritDoc}
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 public function getName()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 return "HMAC-SHA1";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 * {@inheritDoc}
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 public function buildSignature(Request $request, Consumer $consumer, Token $token = null)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 $signatureBase = $request->getSignatureBaseString();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 $parts = [$consumer->secret, null !== $token ? $token->secret : ""];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 $parts = Util::urlencodeRfc3986($parts);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 $key = implode('&', $parts);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 return base64_encode(hash_hmac('sha1', $signatureBase, $key, true));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 }