<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def verify_signature(self, payload, headers):
 """Verify that the payload was sent from our GitHub instance."""

        github_signature = headers.get("x-hub-signature")
        if not github_signature:
            json_abort(401, "X-Hub-Signature header missing.")

        gh_webhook_secret = current_app.config["GITHUB_WEBHOOK_SECRET"]
        signature = "sha1={}".format(
            hmac.new(
                gh_webhook_secret.encode("utf-8"), payload, hashlib.sha1
            ).hexdigest()
        )

        if not hmac.compare_digest(signature, github_signature):
            json_abort(401, "Request signature does not match calculated signature.")