o
    ¤iÅ	  ã                   @   s`   d Z ddlZddlZddlZddlmZ dZdededefdd	„Z	e 
ed
¡ZG dd„ dƒ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)€éÿ   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   r4   r4   r#   r
   éE   éä   é…   éµ   év   r   é^   é~   r   éô   éL   éB   éé   r   r8   éí   ék   r   r   é\   é¶   rC   é   é·   rG   éî   é8   rH   éû   éZ   é‰   éŸ   é¥   é®   rR   é$   é   é|   éK   é   éæ   éI   é(   éf   r#   éì   rZ   éS   é   r   r   r   r   r   r   r   r   ÚnumberÚlengthÚreturnc                 C   s.   |   t |  ¡ d ¡d¡}d|t|ƒ  | S )Nr   Úbigó    )Úto_bytesÚmathÚceilÚ
bit_lengthÚlen)ra   rb   Úresult© rl   ú\/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/secretstorage/dhcrypto.pyÚint_to_bytes   s   rn   rd   c                   @   s(   e Zd Zddd„Zdeddfdd„ZdS )	ÚSessionrc   Nc                 C   s:   d | _ d | _d| _t t d¡d¡| _td| jt	ƒ| _
d S )NTr   rd   r   )Úobject_pathÚaes_keyÚ	encryptedÚintÚ
from_bytesÚosÚurandomÚmy_private_keyÚpowÚDH_PRIME_1024Úmy_public_key)Úselfrl   rl   rm   Ú__init__(   s
   zSession.__init__Úserver_public_keyc                 C   sR   t || jtƒ}t|dƒ}d}t ||t¡ ¡ }t |dt¡ ¡ }|d d… | _d S )Nr   s                                    ó   é   )	rx   rw   ry   rn   ÚhmacÚnewr   Údigestrq   )r{   r}   Úcommon_secret_intÚcommon_secretÚsaltÚpseudo_random_keyÚoutput_blockrl   rl   rm   Úset_server_public_key0   s   ÿ
zSession.set_server_public_key)rc   N)Ú__name__Ú
__module__Ú__qualname__r|   rs   rˆ   rl   rl   rl   rm   ro   '   s    
ro   )Ú__doc__r€   rg   ru   Úhashlibr   ÚDH_PRIME_1024_BYTESrs   Úbytesrn   rt   ry   ro   rl   rl   rl   rm   Ú<module>   s   