����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
.. hazmat::
Ed25519 signing
===============
.. currentmodule:: cryptography.hazmat.primitives.asymmetric.ed25519
Ed25519 is an elliptic curve signing algorithm using `EdDSA`_ and
`Curve25519`_. If you do not have legacy interoperability concerns then you
should strongly consider using this signature algorithm.
Signing & Verification
~~~~~~~~~~~~~~~~~~~~~~
.. doctest::
>>> from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
>>> private_key = Ed25519PrivateKey.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:: Ed25519PrivateKey
.. versionadded:: 2.6
.. classmethod:: generate()
Generate an Ed25519 private key.
:returns: :class:`Ed25519PrivateKey`
.. classmethod:: from_private_bytes(data)
:param data: 32 byte private key.
:type data: :term:`bytes-like`
:returns: :class:`Ed25519PrivateKey`
:raises ValueError: This is raised if the private key is not 32 bytes long.
:raises cryptography.exceptions.UnsupportedAlgorithm: If Ed25519 is not
supported by the OpenSSL version ``cryptography`` is using.
.. doctest::
>>> from cryptography.hazmat.primitives import serialization
>>> from cryptography.hazmat.primitives.asymmetric import ed25519
>>> private_key = ed25519.Ed25519PrivateKey.generate()
>>> private_bytes = private_key.private_bytes(
... encoding=serialization.Encoding.Raw,
... format=serialization.PrivateFormat.Raw,
... encryption_algorithm=serialization.NoEncryption()
... )
>>> loaded_private_key = ed25519.Ed25519PrivateKey.from_private_bytes(private_bytes)
.. method:: public_key()
:returns: :class:`Ed25519PublicKey`
.. method:: sign(data)
:param bytes data: The data to sign.
:returns bytes: The 64 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`,
:attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.OpenSSH`
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` or
:attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.OpenSSH`.
:param encryption_algorithm: An instance of an object conforming to the
:class:`~cryptography.hazmat.primitives.serialization.KeySerializationEncryption`
interface.
:return bytes: Serialized key.
.. class:: Ed25519PublicKey
.. versionadded:: 2.6
.. classmethod:: from_public_bytes(data)
:param bytes data: 32 byte public key.
:returns: :class:`Ed25519PublicKey`
:raises ValueError: This is raised if the public key is not 32 bytes long.
:raises cryptography.exceptions.UnsupportedAlgorithm: If Ed25519 is not
supported by the OpenSSL version ``cryptography`` is using.
.. doctest::
>>> from cryptography.hazmat.primitives import serialization
>>> from cryptography.hazmat.primitives.asymmetric import ed25519
>>> private_key = ed25519.Ed25519PrivateKey.generate()
>>> public_key = private_key.public_key()
>>> public_bytes = public_key.public_bytes(
... encoding=serialization.Encoding.Raw,
... format=serialization.PublicFormat.Raw
... )
>>> loaded_public_key = ed25519.Ed25519PublicKey.from_public_bytes(public_bytes)
.. 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`,
:attr:`~cryptography.hazmat.primitives.serialization.Encoding.OpenSSH`,
or
:attr:`~cryptography.hazmat.primitives.serialization.Encoding.Raw`) and
format (
:attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.SubjectPublicKeyInfo`,
:attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.OpenSSH`
, 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`.
If ``encoding`` is
:attr:`~cryptography.hazmat.primitives.serialization.Encoding.OpenSSH`
then ``format`` must be
:attr:`~cryptography.hazmat.primitives.serialization.PublicFormat.OpenSSH`.
In all other cases ``format`` 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
.. _`Curve25519`: https://en.wikipedia.org/wiki/Curve25519
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| dh.rst | File | 11.93 KB | 0644 |
|
| dsa.rst | File | 12.44 KB | 0644 |
|
| ec.rst | File | 28.82 KB | 0644 |
|
| ed25519.rst | File | 6.73 KB | 0644 |
|
| ed448.rst | File | 4.31 KB | 0644 |
|
| index.rst | File | 1.25 KB | 0644 |
|
| rsa.rst | File | 24.85 KB | 0644 |
|
| serialization.rst | File | 36.08 KB | 0644 |
|
| utils.rst | File | 2.79 KB | 0644 |
|
| x25519.rst | File | 6.76 KB | 0644 |
|
| x448.rst | File | 6.61 KB | 0644 |
|