def test_rsa_jwk_public_and_private_keys_should_parse_and_verify(self): algo = RSAAlgorithm(RSAAlgorithm.SHA256) with open(key_path("jwk_rsa_pub.json")) as keyfile: pub_key = algo.from_jwk(keyfile.read()) with open(key_path("jwk_rsa_key.json")) as keyfile: priv_key = algo.from_jwk(keyfile.read()) signature = algo.sign(b"Hello World!", priv_key) assert algo.verify(b"Hello World!", pub_key, signature)
def generate_signed_data(payload, private_pem: str) -> str: """Generates signature for payload. :param payload: The payload to sign. :type payload: str|dict :param private_pem: The private key used for signing. :type private_pem: str :return: The signature. :rtype: str """ payload_string = get_signature_payload(payload) alg_obj = RSAAlgorithm(RSAAlgorithm.SHA256) key = alg_obj.prepare_key(private_pem) return alg_obj.sign(payload_string.encode('utf-8'), key)