o
    �õ±j¬  ã                   @   s&   d dl Z d dlmZ G dd„ dƒZdS )é    N)Úalgosc                   @   sH   e Zd Zdd„ Zedd„ ƒZedd„ ƒZedd„ ƒZd	d
„ Zdd„ Z	dS )ÚDirtyDHc                 C   sF   d | _ d | _d | _d | _t d¡| _t| j ¡ dƒ| _	t d¡| _
d S )Né    é   )ÚpÚgÚ
shared_keyÚshared_key_intÚosÚurandomÚprivate_keyÚintÚhexÚprivate_key_intÚdh_nonce©Úself© r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/protocol/dirtydh.pyÚ__init__   s   zDirtyDH.__init__c                 C   s   t ƒ }| |_||_|S ©N©r   r   r   )r   r   Úddr   r   r   Úfrom_params   s   zDirtyDH.from_paramsc                 C   s   t ƒ }| d |_| d |_|S )Nr   r   r   )Údhpr   r   r   r   Ú	from_dict   s   

zDirtyDH.from_dictc                 C   s   t j | ¡j}t |¡S r   )r   ÚDHParametersÚloadÚnativer   r   )Ú
asn1_bytesr   r   r   r   Ú	from_asn1   s   
zDirtyDH.from_asn1c                 C   s   t | j| j| jƒS r   )Úpowr   r   r   r   r   r   r   Úget_public_key"   s   zDirtyDH.get_public_keyc                 C   sN   t || j| jƒ| _t| jƒdd … }t|ƒd dkrd| }t |¡| _| jS )Né   r   Ú0)	r!   r   r   r	   r   ÚlenÚbytesÚfromhexr   )r   Úbob_intÚxr   r   r   Úexchange&   s   zDirtyDH.exchangeN)
Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr   r   r    r"   r*   r   r   r   r   r      s    	


r   )r
   Ú
asn1cryptor   r   r   r   r   r   Ú<module>   s    