async def METHOD_NAME(self, *, verify_data: bytes, proof: dict) -> dict:
    """Sign the data and add it to the proof.
    Adds a jws to the proof that can be used for multiple
    signature algorithms.
    Args:
        verify_data (bytes): The data to sign.
        proof (dict): The proof to add the signature to
    Returns:
        dict: The proof object with the added signature
    """
    header = {"alg": self.algorithm, "b64": False, "crit": ["b64"]}
    encoded_header = self._encode_header(header)
    data = self._create_jws(encoded_header=encoded_header, verify_data=verify_data)
    signature = await self.key_pair.METHOD_NAME(data)
    encoded_signature = bytes_to_b64(
        signature, urlsafe=True, pad=False, encoding="utf-8"
    )
    proof["jws"] = encoded_header + ".." + encoded_signature
    return proof