o
     ac                     @   s   d dl Z d dlZd dlmZmZ d dlmZmZ G dd dedZee Z	G dd deZ
G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd dZdS )    N)ABCMetaabstractmethod)SupportsBytesTypec                   @   s@   e Zd ZeededefddZeededefddZdS )_Encoderdatareturnc                 C      dS )z#Transform raw data to encoded data.N r   r
   r
   //usr/lib/python3/dist-packages/nacl/encoding.pyencode       z_Encoder.encodec                 C   r	   )zTransform encoded data back to raw data.

        Decoding after encoding should be a no-op, i.e. `decode(encode(x)) == x`.
        Nr
   r   r
   r
   r   decode   r   z_Encoder.decodeN)__name__
__module____qualname__staticmethodr   bytesr   r   r
   r
   r
   r   r      s    r   )	metaclassc                   @   8   e Zd ZededefddZededefddZdS )
RawEncoderr   r   c                 C      | S Nr
   r   r
   r
   r   r   ,      zRawEncoder.encodec                 C   r   r   r
   r   r
   r
   r   r   0   r   zRawEncoder.decodeNr   r   r   r   r   r   r   r
   r
   r
   r   r   +   
    r   c                   @   r   )
HexEncoderr   r   c                 C   
   t | S r   )binasciiZhexlifyr   r
   r
   r   r   6      
zHexEncoder.encodec                 C   r   r   )r   Z	unhexlifyr   r
   r
   r   r   :   r    zHexEncoder.decodeNr   r
   r
   r
   r   r   5   r   r   c                   @   r   )Base16Encoderr   r   c                 C   r   r   )base64Z	b16encoder   r
   r
   r   r   @   r    zBase16Encoder.encodec                 C   r   r   )r"   Z	b16decoder   r
   r
   r   r   D   r    zBase16Encoder.decodeNr   r
   r
   r
   r   r!   ?   r   r!   c                   @   r   )Base32Encoderr   r   c                 C   r   r   )r"   Z	b32encoder   r
   r
   r   r   J   r    zBase32Encoder.encodec                 C   r   r   )r"   Z	b32decoder   r
   r
   r   r   N   r    zBase32Encoder.decodeNr   r
   r
   r
   r   r#   I   r   r#   c                   @   r   )Base64Encoderr   r   c                 C   r   r   )r"   Z	b64encoder   r
   r
   r   r   T   r    zBase64Encoder.encodec                 C   r   r   )r"   Z	b64decoder   r
   r
   r   r   X   r    zBase64Encoder.decodeNr   r
   r
   r
   r   r$   S   r   r$   c                   @   r   )URLSafeBase64Encoderr   r   c                 C   r   r   )r"   Zurlsafe_b64encoder   r
   r
   r   r   ^   r    zURLSafeBase64Encoder.encodec                 C   r   r   )r"   Zurlsafe_b64decoder   r
   r
   r   r   b   r    zURLSafeBase64Encoder.decodeNr   r
   r
   r
   r   r%   ]   r   r%   c                   @   s&   e Zd ZefdededefddZdS )	Encodableselfencoderr   c                 C   s   | t| S r   )r   r   )r'   r(   r
   r
   r   r   h   s   zEncodable.encodeN)r   r   r   r   r   Encoderr   r   r
   r
   r
   r   r&   g   s    r&   )r"   r   abcr   r   typingr   r   r   r)   r   r   r!   r#   r$   r%   r&   r
   r
   r
   r   <module>   s   





