CasperSecurity

Current Path : /lib/python3/dist-packages/nacl/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/nacl/__pycache__/signing.cpython-310.pyc

o

��a� �@s�ddlmZddlZddlmZddlmZddlmZ	m
Zddlm
Z
mZGdd�de�ZGd	d
�d
eje
�ZGdd�deje
�ZdS)
�)�OptionalN)�encoding)�
exceptions)�
PrivateKey�	PublicKey)�StringFixer�randomc	@sdeZdZUdZeed<eed<ededededdfdd	��Zedefd
d��Z	edefdd
��Z
dS)�
SignedMessagezc
    A bytes subclass that holds a messaged that has been signed by a
    :class:`SigningKey`.
    �
_signature�_message�	signature�message�combined�returncCs||�}||_||_|S�N)r
r)�clsrr
r�obj�r�./usr/lib/python3/dist-packages/nacl/signing.py�_from_parts#szSignedMessage._from_partscC�|jS)zL
        The signature contained within the :class:`SignedMessage`.
        )r
��selfrrrr,�zSignedMessage.signaturecCr)zJ
        The message contained within the :class:`SignedMessage`.
        )rrrrrr
3rzSignedMessage.messageN)�__name__�
__module__�__qualname__�__doc__�bytes�__annotations__�classmethodr�propertyrr
rrrrr	s$
����r	c	@s�eZdZdZejfdedejfdd�Zdefdd�Z	de
fd	d
�Zdede
fdd
�Zdede
fdd�Zdejfdedeedejdefdd�Zdefdd�ZdS)�	VerifyKeyz�
    The public key counterpart to an Ed25519 SigningKey for producing digital
    signatures.

    :param key: [:class:`bytes`] Serialized Ed25519 public key
    :param encoder: A class that is able to decode the `key`
    �key�encodercCsJ|�|�}t|t�st�d��t|�tjjkr t�	dtjj��||_
dS)Nz'VerifyKey must be created from 32 bytesz%The key must be exactly %s bytes long)�decode�
isinstancer�exc�	TypeError�len�nacl�bindings�crypto_sign_PUBLICKEYBYTES�
ValueError�_key)rr#r$rrr�__init__Ds


��
zVerifyKey.__init__rcCrr)r.rrrr�	__bytes__T�zVerifyKey.__bytes__cC�tt|��Sr��hashrrrrr�__hash__W�zVerifyKey.__hash__�othercC�&t||j�sdStj�t|�t|��S�NF�r&�	__class__r*r+�
sodium_memcmpr�rr7rrr�__eq__Z�zVerifyKey.__eq__cC�
||kSrrr=rrr�__ne___�
zVerifyKey.__ne__N�smessagercCsp|dur+t|t�st�dtjj��t|�tjjkr#t�dtjj��||�	|�}n|�	|�}tj�
||j�S)aS
        Verifies the signature of a signed message, returning the message
        if it has not been tampered with else raising
        :class:`~nacl.signing.BadSignatureError`.

        :param smessage: [:class:`bytes`] Either the original messaged or a
            signature and message concated together.
        :param signature: [:class:`bytes`] If an unsigned message is given for
            smessage then the detached signature must be provided.
        :param encoder: A class that is able to decode the secret message and
            signature.
        :rtype: :class:`bytes`
        Nz4Verification signature must be created from %d bytesz+The signature must be exactly %d bytes long)r&rr'r(r*r+�crypto_sign_BYTESr)r-r%�crypto_sign_openr.)rrCrr$rrr�verifybs 
����
zVerifyKey.verifycCstj�|j�}t|�S)z�
        Converts a :class:`~nacl.signing.VerifyKey` to a
        :class:`~nacl.public.PublicKey`

        :rtype: :class:`~nacl.public.PublicKey`
        )r*r+�$crypto_sign_ed25519_pk_to_curve25519r.�_Curve25519_PublicKey)r�raw_pkrrr�to_curve25519_public_key�sz"VerifyKey.to_curve25519_public_key)rrrrr�
RawEncoderr�Encoderr/r0�intr5�object�boolr>rArrFrHrJrrrrr";s0	��
�����
�)r"c@s�eZdZdZejfdedejfdd�Zdefdd�Z	de
fd	d
�Zdede
fdd
�Zdede
fdd�Zeddd��Zejfdedejdefdd�Zdefdd�ZdS)�
SigningKeya�
    Private key for producing digital signatures using the Ed25519 algorithm.

    Signing keys are produced from a 32-byte (256-bit) random seed value. This
    value can be passed into the :class:`~nacl.signing.SigningKey` as a
    :func:`bytes` whose length is 32.

    .. warning:: This **must** be protected and remain secret. Anyone who knows
        the value of your :class:`~nacl.signing.SigningKey` or it's seed can
        masquerade as you.

    :param seed: [:class:`bytes`] Random 32-byte value (i.e. private key)
    :param encoder: A class that is able to decode the seed

    :ivar: verify_key: [:class:`~nacl.signing.VerifyKey`] The verify
        (i.e. public) key that corresponds with this signing key.
    �seedr$cCsj|�|�}t|t�st�d��t|�tjjkr t�	dtjj��tj�
|�\}}||_||_t
|�|_dS)Nz.SigningKey must be created from a 32 byte seedz&The seed must be exactly %d bytes long)r%r&rr'r(r)r*r+�crypto_sign_SEEDBYTESr-�crypto_sign_seed_keypair�_seed�_signing_keyr"�
verify_key)rrQr$�
public_key�
secret_keyrrrr/�s

���zSigningKey.__init__rcCrr)rTrrrrr0�r1zSigningKey.__bytes__cCr2rr3rrrrr5�r6zSigningKey.__hash__r7cCr8r9r:r=rrrr>�r?zSigningKey.__eq__cCr@rrr=rrrrA�rBzSigningKey.__ne__cCs|ttjj�tjd�S)z�
        Generates a random :class:`~nacl.signing.SigningKey` object.

        :rtype: :class:`~nacl.signing.SigningKey`
        )r$)rr*r+rRrrK)rrrr�generate�s
�zSigningKey.generater
cCsTtj�||j�}tjj}|�|d|��}|�||d��}|�|�}t�|||�S)z�
        Sign a message using this key.

        :param message: [:class:`bytes`] The data to be signed.
        :param encoder: A class that is used to encode the signed message.
        :rtype: :class:`~nacl.signing.SignedMessage`
        N)r*r+�crypto_signrUrD�encoder	r)rr
r$�
raw_signedrDr�signedrrr�sign�s
zSigningKey.signcCs|j}tj�|�}t|�S)z�
        Converts a :class:`~nacl.signing.SigningKey` to a
        :class:`~nacl.public.PrivateKey`

        :rtype: :class:`~nacl.public.PrivateKey`
        )rUr*r+�$crypto_sign_ed25519_sk_to_curve25519�_Curve25519_PrivateKey)r�sk�raw_privaterrr�to_curve25519_private_key�sz$SigningKey.to_curve25519_private_keyN)rrP)rrrrrrKrrLr/r0rMr5rNrOr>rAr rYr	r^r`rcrrrrrP�s.��
����
�rP)�typingr�
nacl.bindingsr*rrr'�nacl.publicrr`rrH�
nacl.utilsrrrr	�	Encodabler"rPrrrr�<module>s
![
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY