
    #Cec                         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e      Zee   Z	 G d de      Z
 G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d      Zy)    N)ABCMetaabstractmethod)SupportsBytesTypec                   T    e Zd Zeededefd              Zeededefd              Zy)_Encoderdatareturnc                      y)z#Transform raw data to encoded data.N r	   s    -lib/python3.12/site-packages/nacl/encoding.pyencodez_Encoder.encode           c                      y)zTransform encoded data back to raw data.

        Decoding after encoding should be a no-op, i.e. `decode(encode(x)) == x`.
        Nr   r   s    r   decodez_Encoder.decode   r   r   N)__name__
__module____qualname__staticmethodr   bytesr   r   r   r   r   r   r      sT    2U 2u 2  2 U u   r   r   )	metaclassc                   @    e Zd Zededefd       Zededefd       Zy)
RawEncoderr	   r
   c                     | S Nr   r   s    r   r   zRawEncoder.encode,       r   c                     | S r   r   r   s    r   r   zRawEncoder.decode0   r   r   Nr   r   r   r   r   r   r   r   r   r   r   r   +   sD    U u   U u  r   r   c                   @    e Zd Zededefd       Zededefd       Zy)
HexEncoderr	   r
   c                 ,    t        j                  |       S r   )binasciihexlifyr   s    r   r   zHexEncoder.encode6   s    %%r   c                 ,    t        j                  |       S r   )r$   	unhexlifyr   s    r   r   zHexEncoder.decode:   s    !!$''r   Nr    r   r   r   r"   r"   5   sD    &U &u & & (U (u ( (r   r"   c                   @    e Zd Zededefd       Zededefd       Zy)Base16Encoderr	   r
   c                 ,    t        j                  |       S r   )base64	b16encoder   s    r   r   zBase16Encoder.encode@       %%r   c                 ,    t        j                  |       S r   )r+   	b16decoder   s    r   r   zBase16Encoder.decodeD   r-   r   Nr    r   r   r   r)   r)   ?   D    &U &u & & &U &u & &r   r)   c                   @    e Zd Zededefd       Zededefd       Zy)Base32Encoderr	   r
   c                 ,    t        j                  |       S r   )r+   	b32encoder   s    r   r   zBase32Encoder.encodeJ   r-   r   c                 ,    t        j                  |       S r   )r+   	b32decoder   s    r   r   zBase32Encoder.decodeN   r-   r   Nr    r   r   r   r2   r2   I   r0   r   r2   c                   @    e Zd Zededefd       Zededefd       Zy)Base64Encoderr	   r
   c                 ,    t        j                  |       S r   )r+   	b64encoder   s    r   r   zBase64Encoder.encodeT   r-   r   c                 ,    t        j                  |       S r   )r+   	b64decoder   s    r   r   zBase64Encoder.decodeX   r-   r   Nr    r   r   r   r8   r8   S   r0   r   r8   c                   @    e Zd Zededefd       Zededefd       Zy)URLSafeBase64Encoderr	   r
   c                 ,    t        j                  |       S r   )r+   urlsafe_b64encoder   s    r   r   zURLSafeBase64Encoder.encode^       ''--r   c                 ,    t        j                  |       S r   )r+   urlsafe_b64decoder   s    r   r   zURLSafeBase64Encoder.decodeb   rA   r   Nr    r   r   r   r>   r>   ]   sD    .U .u . . .U .u . .r   r>   c                   $    e Zd ZefdededefdZy)	Encodableselfencoderr
   c                 6    |j                  t        |             S r   )r   r   )rF   rG   s     r   r   zEncodable.encodeh   s    ~~eDk**r   N)r   r   r   r   r   Encoderr   r   r   r   r   rE   rE   g   s    7A +] +W +e +r   rE   )r+   r$   abcr   r   typingr   r   r   rI   r   r"   r)   r2   r8   r>   rE   r   r   r   <module>rL      s|      ' &
 $ x. ( (&H &&H &&H &.8 .+ +r   