/**
  * oauth_signature is set to the concatenated encoded values of the Consumer Secret and 
  * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is 
  * empty. The result MUST be encoded again.
  *   - Chapter 9.4.1 ("Generating Signatures")
  *
  * Please note that the second encoding MUST NOT happen in the SignatureMethod, as
  * OAuthRequest handles this!
  */
 public function build_signature($request, $consumer, $token)
 {
     $key_parts = array($consumer->secret, $token ? $token->secret : "");
     $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
     $key = implode('&', $key_parts);
     $request->base_string = $key;
     return $key;
 }
 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 = OAuthUtil::urlencode_rfc3986($key_parts);
     $key = implode('&', $key_parts);
     return base64_encode(hash_hmac('sha1', $base_string, $key, true));
 }
Example #3
0
 /**
  * generates the basic string serialization of a token that a server
  * would respond to request_token and access_token calls with
  */
 function to_string()
 {
     return "oauth_token=" . OAuthUtil::urlencode_rfc3986($this->key) . "&oauth_token_secret=" . OAuthUtil::urlencode_rfc3986($this->secret);
 }
Example #4
0
 /**
  * builds the Authorization: header
  */
 public function to_header($realm = null)
 {
     $first = true;
     if ($realm) {
         $out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"';
         $first = false;
     } else {
         $out = 'Authorization: OAuth';
     }
     $total = array();
     foreach ($this->parameters as $k => $v) {
         if (substr($k, 0, 5) != "oauth") {
             continue;
         }
         if (is_array($v)) {
             throw new OAuthException('Arrays not supported in headers');
         }
         $out .= $first ? ' ' : ',';
         $out .= OAuthUtil::urlencode_rfc3986($k) . '="' . OAuthUtil::urlencode_rfc3986($v) . '"';
         $first = false;
     }
     return $out;
 }
Example #5
0
 public static function parse_parameters($input)
 {
     if (!isset($input) || !$input) {
         return array();
     }
     $pairs = explode('&', $input);
     $parsed_parameters = array();
     foreach ($pairs as $pair) {
         $split = explode('=', $pair, 2);
         $parameter = OAuthUtil::urldecode_rfc3986($split[0]);
         $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : '';
         if (isset($parsed_parameters[$parameter])) {
             // We have already recieved parameter(s) with this name, so add to the list
             // of parameters with this name
             if (is_scalar($parsed_parameters[$parameter])) {
                 // This is the first duplicate, so transform scalar (string) into an array
                 // so we can add the duplicates
                 $parsed_parameters[$parameter] = array($parsed_parameters[$parameter]);
             }
             $parsed_parameters[$parameter][] = $value;
         } else {
             $parsed_parameters[$parameter] = $value;
         }
     }
     return $parsed_parameters;
 }