a
    kÄ#d  ã                   @   sÜ   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZ g d¢Ze e¡dd„ ƒZe e¡dd„ ƒZe e¡d	d
„ ƒZe e¡dd„ ƒZe e¡dd„ ƒZe e¡dd„ ƒZe e¡dd„ ƒZe e¡dd„ ƒZdS )é    )Ú	UDS_DSCPRÚUDS_ERPRÚUDS_SAPRÚUDS_RDBPIPRÚUDS_CCPRÚUDS_TPPRÚUDS_RDPRÚUDS)ÚPacket)ÚEcuState)ÚUDS_DSCPR_modify_ecu_stateÚUDS_CCPR_modify_ecu_stateÚUDS_ERPR_modify_ecu_stateÚUDS_RDBPIPR_modify_ecu_stateÚUDS_TPPR_modify_ecu_stateÚUDS_SAPR_modify_ecu_stateÚUDS_RDPR_modify_ecu_statec                 C   s(   | j |_z|`W n ty"   Y n0 d S ©N)ZdiagnosticSessionTypeÚsessionÚsecurity_levelÚAttributeError©ÚselfÚreqÚstate© r   ú^/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/automotive/uds_ecu_states.pyr      s
    r   c                 C   s   |  ¡  d|_d S ©Né   )Úresetr   r   r   r   r   r      s    r   c                 C   sl   | j d dkr.| j dkr.t|ƒdkr.| j |_n:| j d dkrh| j dkrht|ƒdkrht| jƒsh| j d |_d S )Né   r   é   r   )ZsecurityAccessTypeÚlenr   ÚanyZsecuritySeedr   r   r   r   r   %   s    ÿ
ÿ
ÿ
þþr   c                 C   s   | j |_d S r   )ZcontrolTypeZcommunication_controlr   r   r   r   r   1   s    r   c                 C   s
   d|_ d S r   )Útpr   r   r   r   r   7   s    r   c                 C   s   | j |_d S r   )ZperiodicDataIdentifierZpdidr   r   r   r   r   =   s    r   c                 C   s0   t |ddƒ}t|jƒ}||v r"|n|| |_d S )NÚreq_downloadÚ )ÚgetattrÚstrÚfieldsr%   )r   r   r   ZoldstrZnewstrr   r   r   r   C   s    
r   c              	   C   s8   | j dkr4z|j|_W n ttfy,   Y n0 d|_d S )Néw   r&   )Zservicer%   Zdownload_completeÚKeyErrorr   r   r   r   r   ÚUDS_modify_ecu_stateK   s    
r,   N)Zscapy.contrib.automotive.udsr   r   r   r   r   r   r   r	   Zscapy.packetr
   Zscapy.contrib.automotive.ecur   Ú__all__Zextend_pkt_with_modifierr   r   r   r   r   r   r   r,   r   r   r   r   Ú<module>   s&   (
	





