
    E0jo                        d dl Z d dlZdZ ee                    dd          d          Zg Z ed d          D ](Ze                    d            edez
  dz  z	  d	z  ee<   )eZg Z	 ed d          D ]Ze	                    d            d
e	e<    edd          D ]Ze	                    d            de	e<   d Z
d Zd Zd Zd Zd Zd Zd Zd Z G d d          ZdS )    NzG7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e                   iEy@   izc                 4    |dz  }| |z  dz  | dz  d|z
  z	  z  S )Nr   r	    )aks     e/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_openapi_util/sm3.pyrotate_leftr      s,    	BA!Vz!q:~26&BCC    c                 z    d|cxk    rdk     rn n	| |z  |z  }n!d|cxk    rdk     rn n| |z  | |z  z  ||z  z  }|S Nr   r   r
   r   XYZjrets        r   FF_jr      sc    A{{{{{{{{{!eai	q21uQ1q5)Jr   c                 p    d|cxk    rdk     rn n	| |z  |z  }nd|cxk    rdk     rn n| |z  |  |z  z  }|S r   r   r   s        r   GG_jr   "   s\    A{{{{{{{{{!eai	q21uA##Jr   c                 J    | t          | d          z  t          | d          z  S )N	      r   r   s    r   P_0r"   +   s&    Aq!!"k!R&8&899r   c                 J    | t          | d          z  t          | d          z  S )N      r    r!   s    r   P_1r&   /   s&    Ar""#{1b'9'9::r   c           
      ~   g }t          d          D ]W}d}d}t          |dz  |dz   dz            D ]"}|||         |z  z   }t          |dz            }#|                    |           Xt          dd          D ]}|                    d           t          ||dz
           ||dz
           z  t	          ||d	z
           d
          z            t	          ||dz
           d          z  ||dz
           z  ||<   d||         z  }g }	t          dd          D ]9}|	                    d           ||         ||dz            z  |	|<   d|	|         z  }:| \  }
}}}}}}}	 t          dd          D ]}t	          t	          |
d          |z   t	          t
          |         |          z   dz  d          }|t	          |
d          z  }t          |
|||          |z   |z   |	|         z   dz  }t          ||||          |z   |z   ||         z   dz  }|}t	          |d          }|
}|}
|}t	          |d          }|}t          |          }|
dz  }
|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|
| d         z  || d         z  || d         z  || d	         z  || d         z  || d         z  || d         z  || d         z  g}|S )Nr   i   r            D   r      r$      r      z%08xr
      r	            )	rangeintappendr&   r   T_jr   r   r"   )V_iB_iWiweightdatar   r   str1W_1ABCDEFGHSS1SS2TT1TT2V_i_1s                          r   CFrL   3   sB   
A2YY  q1uq1uk** 	) 	)A#a&6/)D%((FF	2r]]  	1QV9qQx';qQx+D+DEFF+VWXY\^X^V_abJcJcdghijmningoo!!}
C1b\\  

11!a%AA Aq!Q1a 1b\\  K2..!3{3q617M7MNR\\^_``[B''(Aq!Q!#c)CF2j@Aq!Q!#c)AaD0J>12HH
N
N
N
N
N
N
N
N	 	
CF
	CF
	CF
	CF
	CF
	CF
	CF
	CF
	E Lr   c                 4   t          |           }|dz  }|                     d           |dz   }d}||k    r|dz   }t          ||          D ]}|                     d           |dz  }|dz  g}t          d          D ],}t          |dz            }|                    |dz             -t          d          D ] }|                     |d|z
                      !t	          t          |           dz            }g }t          d|          D ](}|                    | |dz  |dz   dz                      )t
          g}	t          d|          D ]1}|	                    t          |	|         ||                              2|	|dz            }
d	}|
D ]	}d
||fz  }
|S )Nr
      r)   8   r   r   r*   r   r   z%s%08x)lenr5   r3   r4   roundIVrL   )msglen1reserve1	range_endr:   
bit_lengthbit_length_strgroup_countbvyresults               r   hash_msgr^   v   s   s88DbyHJJt!|HI)N	8Y''  

4!J 5()N1XX 2 2e+,,
j5011111XX * *

>!a%())))C2&&K
A1k"" + +	QVQUbL()****	A1k"" ! !	AaD!A$    	!a%AF ( (VQK'Mr   c                     t          |           }g }t          |          D ]}|                    | |                    |S N)rP   r3   r5   )rS   mlmsg_byter:   s       r   to_byte_arrayrc      sE    	SBH2YY    AOr   c                 b    t          |           }t          j        t          |                    S r`   )rc   binasciia2b_hexr^   )rS   rb   s     r   hash_sm3rg      s(    S!!HHX..///r   c                   H    e Zd ZdZd
dZd Zd Zd Zed             Z	d Z
d	S )Sm3r
   r   c                 .    t          |          | _        d S r`   )rc   
byte_array)selfrb   s     r   __init__zSm3.__init__   s    '11r   c                 T    | j                             t          |                     d S r`   )rk   extendrc   )rl   r<   s     r   updatez
Sm3.update   s&    }T2233333r   c                 N    t          j        t          | j                            S r`   )re   rf   r^   rk   rl   s    r   digestz
Sm3.digest   s     9 9:::r   c                 *    t          | j                  S r`   )r^   rk   rr   s    r   	hexdigestzSm3.hexdigest   s    (((r   c                 *    t          | j                  S r`   )rP   rk   rr   s    r   digest_sizezSm3.digest_size   s    4?###r   c                 *    t          j        |           S r`   )copydeepcopyrr   s    r   ry   zSm3.copy   s    }T"""r   N)r   )__name__
__module____qualname__
block_sizerm   rp   rs   ru   propertyrw   ry   r   r   r   ri   ri      s        J2 2 2 24 4 4; ; ;) ) ) $ $ X$# # # # #r   ri   )re   ry   rR   r4   replacer   r3   r:   r5   r6   r   r   r   r"   r&   rL   r^   rc   rg   ri   r   r   r   <module>r      s    NSC		b!!	q! / /AHHQKKKAER< J.AaDD	q"  AJJqMMMCFF	r2  AJJqMMMCFFD D D
    : : :; ; ;@ @ @F# # #L  0 0 0
# # # # # # # # # #r   