
    E#i                          % S r SSKrSSKJrJr  SSKJr  SSKJr  S\R                  ;   r
\\S'    " S	 S
5      r " S S5      r " S S5      r " S S5      rg)zModule for SHA-2 algorithms.    N)AnyUnion)SHA512   )	AlgoUtils
sha512_256HASHLIB_USE_SHA512_256c                       \ rS rSr% Sr\\S'   SS jrS\SS4S jr	S\4S	 jr
\S
\\\4   S\4S j5       r\S\4S j5       rSrg)Sha256#   z;
SHA256 class.
It computes digests using SHA256 algorithm.
handlereturnNc                 8    [         R                  " 5       U l        g)zConstruct class.N)hashlibsha256r   selfs    h/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/bip/utils/crypto/sha2.py__init__Sha256.__init__+   s    nn&    
data_bytesc                 :    U R                   R                  U5        g)z:
Update digest.

Args:
    data_bytes (bytes): Data bytes
N)r   update)r   r   s     r   UpdateSha256.Update/   s     	:&r   c                 6    U R                   R                  5       $ )z?
Get the computed digest.

Returns:
    bytes: Computed digest
)r   digestr   s    r   DigestSha256.Digest9   s     {{!!##r   datac                 r    [         R                  " [        R                  " U 5      5      R	                  5       $ o
Compute the digest (quick version).

Args:
    data (str or bytes): Data

Returns:
    bytes: Computed digest
)r   r   r   Encoder   r!   s    r   QuickDigestSha256.QuickDigestB   '     ~~i..t45<<>>r   c                  @    [         R                  " 5       R                  $ G
Get the digest size in bytes.

Returns:
    int: Digest size in bytes
)r   r   digest_size r   r   
DigestSizeSha256.DigestSizeO        ~~+++r   )r   )r   N)__name__
__module____qualname____firstlineno____doc__r   __annotations__r   bytesr   r   staticmethodr   strr'   intr/   __static_attributes__r.   r   r   r   r   #   sz    
 K'' '%)'$ $ 
?%s
+ 
? 
? 
? , , ,r   r   c                   V    \ rS rSrSr\S\\\4   S\4S j5       r	\S\
4S j5       rSrg)	DoubleSha256Z   zH
Double SHA256 class.
It computes digests using SHA256 algorithm twice.
r!   r   c                 R    [         R                  [         R                  U 5      5      $ r#   )r   r'   r&   s    r   r'   DoubleSha256.QuickDigest`   s      !!&"4"4T":;;r   c                  *    [         R                  5       $ r+   )r   r/   r.   r   r   r/   DoubleSha256.DigestSizem   s       ""r   r.   Nr2   r3   r4   r5   r6   r9   r   r8   r:   r'   r;   r/   r<   r.   r   r   r>   r>   Z   sM    
 
<%s
+ 
< 
< 
< # # #r   r>   c                   V    \ rS rSrSr\S\\\4   S\4S j5       r	\S\
4S j5       rSrg)	Sha512x   z;
SHA512 class.
It computes digests using SHA512 algorithm.
r!   r   c                 r    [         R                  " [        R                  " U 5      5      R	                  5       $ r#   )r   sha512r   r%   r   r&   s    r   r'   Sha512.QuickDigest~   r)   r   c                  @    [         R                  " 5       R                  $ r+   )r   rI   r-   r.   r   r   r/   Sha512.DigestSize   r1   r   r.   NrD   r.   r   r   rF   rF   x   sM    
 
?%s
+ 
? 
? 
? , , ,r   rF   c                   V    \ rS rSrSr\S\\\4   S\4S j5       r	\S\
4S j5       rSrg)	
Sha512_256   zC
SHA512/256 class.
It computes digests using SHA512/256 algorithm.
r!   r   c                     [         (       a9  [        R                  " S[        R                  " U 5      5      R                  5       $ [        R                  " [        R                  " U 5      SS9R                  5       $ )r$   r   256truncate)r	   r   newr   r%   r   r   r&   s    r   r'   Sha512_256.QuickDigest   sT     "!;;|Y-=-=d-CDKKMMzz)**405AHHJJr   c                      [         (       a   [        R                  " S5      R                  $ [        R                  " SS9R                  $ )r,   r   rQ   rR   )r	   r   rT   r-   r   r.   r   r   r/   Sha512_256.DigestSize   s:     *) L)55 	=ZZ/;;	=r   r.   NrD   r.   r   r   rN   rN      sQ    
 K%s
+ K K K 	= 	= 	=r   rN   )r6   r   typingr   r   Crypto.Hashr   miscr   algorithms_availabler	   boolr7   r   r>   rF   rN   r.   r   r   <module>r]      sY   * #      ,w/K/KK  K4, 4,n# #<, ,< =  =r   