132 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
.. hazmat::
 | 
						|
 | 
						|
Ed448 signing
 | 
						|
=============
 | 
						|
 | 
						|
.. currentmodule:: cryptography.hazmat.primitives.asymmetric.ed448
 | 
						|
 | 
						|
 | 
						|
Ed448 is an elliptic curve signing algorithm using `EdDSA`_.
 | 
						|
 | 
						|
 | 
						|
Signing & Verification
 | 
						|
~~~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
.. doctest::
 | 
						|
 | 
						|
    >>> from cryptography.hazmat.primitives.asymmetric.ed448 import Ed448PrivateKey
 | 
						|
    >>> private_key = Ed448PrivateKey.generate()
 | 
						|
    >>> signature = private_key.sign(b"my authenticated message")
 | 
						|
    >>> public_key = private_key.public_key()
 | 
						|
    >>> # Raises InvalidSignature if verification fails
 | 
						|
    >>> public_key.verify(signature, b"my authenticated message")
 | 
						|
 | 
						|
Key interfaces
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
.. class:: Ed448PrivateKey
 | 
						|
 | 
						|
    .. versionadded:: 2.6
 | 
						|
 | 
						|
    .. classmethod:: generate()
 | 
						|
 | 
						|
        Generate an Ed448 private key.
 | 
						|
 | 
						|
        :returns: :class:`Ed448PrivateKey`
 | 
						|
 | 
						|
    .. classmethod:: from_private_bytes(data)
 | 
						|
 | 
						|
        :param data: 57 byte private key.
 | 
						|
        :type data: :term:`bytes-like`
 | 
						|
 | 
						|
        :returns: :class:`Ed448PrivateKey`
 | 
						|
 | 
						|
    .. method:: public_key()
 | 
						|
 | 
						|
        :returns: :class:`Ed448PublicKey`
 | 
						|
 | 
						|
    .. method:: sign(data)
 | 
						|
 | 
						|
        :param bytes data: The data to sign.
 | 
						|
 | 
						|
        :returns bytes: The 114 byte signature.
 | 
						|
 | 
						|
    .. method:: private_bytes(encoding, format, encryption_algorithm)
 | 
						|
 | 
						|
        Allows serialization of the key to bytes. Encoding (
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.PEM`,
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`, or
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.Raw`) and
 | 
						|
        format (
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.PKCS8`
 | 
						|
        or
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.Raw`
 | 
						|
        ) are chosen to define the exact serialization.
 | 
						|
 | 
						|
        :param encoding: A value from the
 | 
						|
            :class:`~cryptography.hazmat.primitives.serialization.Encoding` enum.
 | 
						|
 | 
						|
        :param format: A value from the
 | 
						|
            :class:`~cryptography.hazmat.primitives.serialization.PrivateFormat`
 | 
						|
            enum. If the ``encoding`` is
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.Encoding.Raw`
 | 
						|
            then ``format`` must be
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.Raw`
 | 
						|
            , otherwise it must be
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.PKCS8`.
 | 
						|
 | 
						|
        :param encryption_algorithm: An instance of an object conforming to the
 | 
						|
            :class:`~cryptography.hazmat.primitives.serialization.KeySerializationEncryption`
 | 
						|
            interface.
 | 
						|
 | 
						|
        :return bytes: Serialized key.
 | 
						|
 | 
						|
.. class:: Ed448PublicKey
 | 
						|
 | 
						|
    .. versionadded:: 2.6
 | 
						|
 | 
						|
    .. classmethod:: from_public_bytes(data)
 | 
						|
 | 
						|
        :param bytes data: 57 byte public key.
 | 
						|
 | 
						|
        :returns: :class:`Ed448PublicKey`
 | 
						|
 | 
						|
    .. method:: public_bytes(encoding, format)
 | 
						|
 | 
						|
        Allows serialization of the key to bytes. Encoding (
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.PEM`,
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`, or
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.Encoding.Raw`) and
 | 
						|
        format (
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.SubjectPublicKeyInfo`
 | 
						|
        or
 | 
						|
        :attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.Raw`
 | 
						|
        ) are chosen to define the exact serialization.
 | 
						|
 | 
						|
        :param encoding: A value from the
 | 
						|
            :class:`~cryptography.hazmat.primitives.serialization.Encoding` enum.
 | 
						|
 | 
						|
        :param format: A value from the
 | 
						|
            :class:`~cryptography.hazmat.primitives.serialization.PublicFormat`
 | 
						|
            enum. If the ``encoding`` is
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.Encoding.Raw`
 | 
						|
            then ``format`` must be
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.Raw`
 | 
						|
            , otherwise it must be
 | 
						|
            :attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.SubjectPublicKeyInfo`.
 | 
						|
 | 
						|
        :returns bytes: The public key bytes.
 | 
						|
 | 
						|
    .. method:: verify(signature, data)
 | 
						|
 | 
						|
        :param bytes signature: The signature to verify.
 | 
						|
 | 
						|
        :param bytes data: The data to verify.
 | 
						|
 | 
						|
        :raises cryptography.exceptions.InvalidSignature: Raised when the
 | 
						|
            signature cannot be verified.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
.. _`EdDSA`: https://en.wikipedia.org/wiki/EdDSA
 |