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
|