/**
     * {@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;
    }