Exemple #1
0
    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)