/** * {@inheritdoc} * @param OAuthRequest $request * @param string $consumer_secret * @param string $token_secret * @param string $signature * @return bool */ public function check_signature($request, $consumer_secret, $token_secret, $signature) { $decoded_sig = base64_decode($signature); $base_string = $request->get_signature_base_string(); // Fetch the public key cert based on the request $cert = $this->fetch_public_certificate($request); // Pull the public key ID from the certificate $publickeyid = openssl_get_publickey($cert); // Check the computed signature against the one passed in the query $ok = openssl_verify($base_string, $decoded_sig, $publickeyid); // Release the key resource openssl_free_key($publickeyid); return $ok == 1; }