PKCS#1 v1.5 (RSA)
=================

An old but still solid digital signature scheme based on RSA.

It is more formally called ``RSASSA-PKCS1-v1_5``
in `Section 8.2 of RFC8017`__.

The following example shows how a *private* RSA key (loaded from a file)
can be used to compute the signature of a message::

        >>> from Crypto.Signature import pkcs1_15
        >>> from Crypto.Hash import SHA256
        >>> from Crypto.PublicKey import RSA
        >>>
        >>> message = b'To be signed'
        >>> key = RSA.import_key(open('private_key.der').read())
        >>> h = SHA256.new(message)
        >>> signature = pkcs1_15.new(key).sign(h)

At the other end, the receiver can verify the signature (and therefore
the authenticity of the message) using the matching *public* RSA key::

        >>> key = RSA.import_key(open('public_key.der').read())
        >>> h = SHA256.new(message)
        >>> try:
        >>>     pkcs1_15.new(key).verify(h, signature)
        >>>     print "The signature is valid."
        >>> except (ValueError, TypeError):
        >>>    print "The signature is not valid."

.. __: https://tools.ietf.org/html/rfc8017

.. automodule:: Crypto.Signature.pkcs1_15
    :members:
