code: def verify(
              self, headers, serialized_request_env, deserialized_request_env):
          # type: (Dict[str, Any], str, RequestEnvelope) -> None
          
          cert_url = headers.get(self._signature_cert_chain_url_key)
          signature = headers.get(self._signature_key)
  
          if cert_url is None or signature is None:
              raise VerificationException(
                  "Missing Signature/Certificate for the skill request")
  
          cert_chain = self._retrieve_and_validate_certificate_chain(cert_url)
  
          self._valid_request_body(
              cert_chain, signature, serialized_request_env)
docs: Verify if the input request signature and the body matches.
  
          The verify method retrieves the Signature Certificate Chain URL,
          validates the URL, retrieves the chain from the URL, validates
          the signing certificate, extract the public key, base64 decode
          the Signature and verifies if the hash value of the request body
          matches with the decrypted signature.
  
          :param headers: headers of the input POST request
          :type headers: Dict[str, Any]
          :param serialized_request_env: raw request envelope in the
              input POST request
          :type serialized_request_env: str
          :param deserialized_request_env: deserialized request envelope
              instance of the input POST request
          :type deserialized_request_env:
              :py:class:`ask_sdk_model.request_envelope.RequestEnvelope`
          :raises: :py:class:`VerificationException` if headers doesn't
              exist or verification fails