
    Dj                     p    d Z ddlZddlZddlmZ 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)   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   bigc                   &    e Zd ZddZdeddfdZdS )SessionreturnNc                     d | _         d | _        d| _        t                              t          j        d          d          | _        t          d| j        t                    | _
        d S )NTr   rb   r   )object_pathaes_key	encryptedint
from_bytesosurandommy_private_keypowDH_PRIME_1024my_public_key)selfs    Q/home/thesage/.hermes/venv/lib/python3.11/site-packages/secretstorage/dhcrypto.py__init__zSession.__init__!   sU    '+%)!nnRZ-=-=uEE D$7GG    server_public_keyc                 >   t          || j        t                    }|                    dd          }d}t	          j        ||t                                                    }t	          j        |dt                                                    }|d d         | _        d S )Nr   rb   s                                          )	ro   rn   rp   to_byteshmacnewr   digestrh   )rr   rv   common_secret_intcommon_secretsaltpseudo_random_keyoutput_blocks          rs   set_server_public_keyzSession.set_server_public_key)   s     143F -/ /)223>> HT=&AAHHJJx 17FCCJJLL#ETE*ru   )re   N)__name__
__module____qualname__rt   rj   r    ru   rs   rd   rd       sN        H H H H	+s 	+t 	+ 	+ 	+ 	+ 	+ 	+ru   rd   )
__doc__r{   rl   hashlibr   DH_PRIME_1024_BYTESrj   rk   rp   rd   r   ru   rs   <module>r      s      				        2E::+ + + + + + + + + +ru   