
    .Ph
                         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de	de
fdZe	                    ed	          Z G d
 d          ZdS )zThis module contains needed classes, functions and constants
to implement dh-ietf1024-sha256-aes128-cbc-pkcs7 secret encryption
algorithm.    N)sha256)Optional)   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   r6   r6   r%   r   E            v   r   ^   ~   r      L   B      r    r:      k   r   r   \      rE         rI      8   rJ      Z               rT   $      |   K         I   (   f   r%      r\   S      r   r   r   r   r   r   r   r   numberreturnc                 |    |                      t          j        |                                 dz            d          S )Nr   big)to_bytesmathceil
bit_length)rc   s    V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/secretstorage/dhcrypto.pyint_to_bytesrl       s1    ??49V%6%6%8%81%<==uEEE    rf   c                   &    e Zd ZddZdeddfdZdS )Sessionrd   Nc                     d | _         d | _        d| _        t                              t          j        d          d          | _        t          d| j        t                    | _
        d S )NTr   rf   r   )object_pathaes_key	encryptedint
from_bytesosurandommy_private_keypowDH_PRIME_1024my_public_key)selfs    rk   __init__zSession.__init__(   sU    !nnRZ-=-=uEE D$7GGrm   server_public_keyc                 `   t          || j        t                    }t          |          }ddt	          |          z
  z  |z   }d}t          j        ||t                                                    }t          j        |dt                                                    }|d d         | _	        d S )N    r   s                                          )
ry   rx   rz   rl   lenhmacnewr   digestrr   )r|   r~   common_secret_intcommon_secretsaltpseudo_random_keyoutput_blocks          rk   set_server_public_keyzSession.set_server_public_key0   s     143F -/ /$%6774#m*<*<#<=M HT=&AAHHJJx 17FCCJJLL#ETE*rm   )rd   N)__name__
__module____qualname__r}   rt   r    rm   rk   ro   ro   '   sN        H H H H+s +t + + + + + +rm   ro   )__doc__r   rh   rv   hashlibr   typingr   DH_PRIME_1024_BYTESrt   bytesrl   ru   rz   ro   r   rm   rk   <module>r      s       				             F F F F F F 2E::+ + + + + + + + + +rm   