/**
  * @param Request $request
  * @param Consumer $consumer
  * @param Token $token
  * @return string
  */
 public function buildSignature(Request $request, Consumer $consumer, Token $token)
 {
     $signatureBase = $request->getSignatureBaseString();
     $parts = array($consumer->getSecret(), null !== $token ? $token->getSecret() : '');
     $parts = Util::urlencodeRFC3986($parts);
     $key = implode('&', $parts);
     return base64_encode(hash_hmac('sha1', $signatureBase, $key, true));
 }