
    tZh                         d Z 	 ddlZ ej                  d      j                  d       d Zy# eef$ r  ddlmZm	Z	 d Z
d	 Zd
 Zd Zd Zd Zd ZY yw xY w)z5
Implementation of the SHAKE-256 algorithm for Ed448
    Nshake256@   c                 L    t        j                  d|       j                  |      S )Nr   )hashlibnewdigestmsgoutlens     g/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/ecdsa/_sha3.py	shake_256r   
   s    {{:s+226::       )bytes_to_intint_to_bytesc                     t        | d      S )Nlittle	byteorder)r   )ss    r   _from_ler      s    A22r   c                 $    | |z  | d|z
  z	  z  dz  S )Nr   l     )xbs     r   _rolr      s    aA"q&M*y99r   c                    g d}g d}g d}t        dd      D ]n  }dgdz  }dgdz  }t        dd      D ]  }||dz  xx   | |   z  cc<    t        dd      D ]&  }||dz   dz     t        ||d	z   dz     d	      z  ||<   ( t        dd      D ]  }| |xx   ||dz     z  cc<    t        dd      D ]  }t        | |   ||         | |<    | |d      }t        dt        |      d	z
        D ]  }| ||d	z         | ||   <    || |d
   <   t        ddd      D ]^  }| |   | |d	z      | |dz      | |dz      | |dz      | |   | |d	z      g}t        dd      D ]   }	||	   ||	d	z       ||	dz      z  z  | ||	z   <   " ` | dxx   ||   z  cc<   q y )N)r   r   >         $   ,      7         
   +      '   )   -                  =   8      )r   r#   	      r4   r%   r1               r-         r.   r/         r&   r0            r'   )r   i  l          l          i                  l   	             l   	   l   
    l      l           l          l          l          l           i
  l   
       rC   l          rB   l         r   r<   r>   r)   r;   r   r1   r&   )ranger   len)
r   	ROTATIONSPERMUTATIONRCrndcditjs
             r   _sha3_transformrR      s&   
	6
4
6 B<  	CaAaA1b\ !!a%AaD !1a[ @!a%1~QA{^Q(??!@1b\ !!!a% ! 1b\ 0AaD)A,/!0 +a.!A1c+.23 :$%k!a%&8$9+a.!:!"Ak"o1b!_ AaDa!eHa!eHa!eHa!eHaDa!eH q! AA t1q5	aAh'?@Aa!eHAA aDBsGODA 	r   c           
          t        dt        |      dz        D ]$  }| |xx   t        |d|z  d|z  dz          z  cc<   & y )Nr   r/   )rG   rH   r   )r   r   rQ   s      r   _reinterpret_to_words_and_xorrT      sF    q#a&A+& 	3AaDHQq1uq1uqy122D	3r   c                 v    t               }t        dt        |             D ]  }|t        | |   dd      z  } |S )Nr   r/   r   r   )	bytearrayrG   rH   r   )wmprQ   s      r   _reinterpret_to_octetsrY      s?    [q#a&! 	<A,qtQ(;;B	<	r   c                 (   d|z  }dgdz  }d}t        |       |z  }t        d|      D ]$  }t        || |||z           ||z  }t        |       & t	        | |d       }	|	j                  |       t        |	      |k  r |	j                  d       t        |	      |k  r |	t        |	      dz
  xx   dz  cc<   t        ||	       t        |       t	               }
t        |
      |k  r+|
t        |d|       z  }
t        |       t        |
      |k  r+|
d| S )z!Semi-generic SHA-3 implementationr/   r   r)   Nr      )rH   rG   rT   rR   rV   appendrY   )r
   r_wo_pe_br_br   idxblocksrO   mouts              r   	_sha3_rawre      s   #gC"HSSq&! 	A)!SsSy-AB3JCA	
 c#$i 	!fslHHQK !fsl	#a&1*%a+k#hn)!DS'22CA #hn 4Cyr   c                     t        | dd|      S )Nr?      )re   r	   s     r   r   r      s    b"f--r   )__doc__r   r   r   r   	TypeError
ValueError_compatr   r   r   r   rR   rT   rY   re   r   r   r   <module>rl      sr   p.GKK
""2&; 	: h.33:qh3
6.Oh.s   (- $AA