o
    V¤´Wz	  ã                   @   sz   d Z ddlZddlZddlZddlmZ ddlmZ dZe	e
dƒr&dd„ Zndd	lmZ eeeƒd
ƒZG dd„ deƒZdS )zŠThis module contains needed classes, functions and constants
to implement dh-ietf1024-sha256-aes128-cbc-pkcs7 secret encryption
algorithm.é    N)Úsha256)Úint_from_bytes)€éÿ   r   r   r   r   r   r   r   éÉ   é   éÚ   é¢   é!   éh   éÂ   é4   éÄ   éÆ   éb   é‹   é€   éÜ   é   éÑ   é)   é   éN   é   éŠ   ég   éÌ   ét   r   é   é¾   é¦   é;   é   é›   é"   éQ   éJ   r   éy   éŽ   r   é   éÝ   éï   é•   é   é³   éÍ   é:   éC   é   é0   é+   é
   ém   éò   é_   é   é7   éO   éá   é5   r5   r5   r$   r   éE   éä   é…   éµ   év   r   é^   é~   r   éô   éL   éB   éé   r   r9   éí   ék   r   r   é\   é¶   rD   é   é·   rH   éî   é8   rI   éû   éZ   é‰   éŸ   é¥   é®   rS   é$   é   é|   éK   é   éæ   éI   é(   éf   r$   éì   r[   éS   é�   r   r   r   r   r   r   r   r   Úto_bytesc                 C   s   t  | t |  ¡ d ¡d¡S )Nr   Úbig)Úintrb   ÚmathÚceilÚ
bit_length)Únumber© ri   úH/var/www/html/env/lib/python3.10/site-packages/secretstorage/dhcrypto.pyÚint_to_bytes   s   ÿrk   )rk   rc   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚSessionc                 C   s>   d | _ d | _d | _d| _tt d¡dƒ| _td| jt	ƒ| _
d S )NTr   rc   r   )Úobject_pathÚserver_public_keyÚaes_keyÚ	encryptedr   ÚosÚurandomÚmy_private_keyÚpowÚDH_PRIME_1024Úmy_public_key)Úselfri   ri   rj   Ú__init__'   s   zSession.__init__c                 C   sd   t || jtƒ}t|ƒ}ddt|ƒ  | }d}t ||t¡ ¡ }t |dt¡ ¡ }|d d… | _	d S )Nó    r   s                                    ó   é   )
rt   rs   ru   rk   ÚlenÚhmacÚnewr   Údigestro   )rw   rn   Úcommon_secretÚsaltÚpseudo_random_keyÚoutput_blockri   ri   rj   Úset_server_public_key0   s   ÿzSession.set_server_public_keyN)Ú__name__Ú
__module__Ú__qualname__rx   r„   ri   ri   ri   rj   rl   &   s    	rl   )Ú__doc__r}   re   rq   Úhashlibr   Úcryptography.utilsr   ÚDH_PRIME_1024_BYTESÚhasattrrd   rk   Ú	bytearrayru   Úobjectrl   ri   ri   ri   rj   Ú<module>   s   

