a
    kÄ#dv  ã                   @   sZ   d dl mZmZ d dlmZmZmZmZmZ d dl	m
Z
 G dd„ deƒZee
edd� dS )	é    )ÚPacketÚbind_layers)Ú	ByteFieldÚLenFieldÚ
ShortFieldÚStrFixedLenFieldÚStrLenField)ÚEAPOLc                   @   sœ   e Zd Zd Zeddƒeddƒedddƒedd	d
ƒedd	dƒedd	dƒedd	d
ƒedd	d
ƒedd	dƒedddƒedd	dd„ d�gZ	dd„ Z
dd„ Zdd„ ZdS )ÚWPA_keyZdescriptor_typeé   Zkey_infor   ÚlenNÚHZreplay_counterÚ é   Únonceé    Zkey_ivé   Zwpa_key_rscZ
wpa_key_idZwpa_key_micÚwpa_key_lengthZwpa_keyc                 C   s   | j S ©N)r   )Zpkt© r   úN/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/wpa_eapol.pyÚ<lambda>   ó    zWPA_key.<lambda>)Zlength_fromc                 C   s   | j }|d |… ||d … fS r   )r   )ÚselfÚsZtmp_lenr   r   r   Úextract_padding   s    zWPA_key.extract_paddingc                 C   s   t | jƒ| j ¡  S r   )ÚchrÚtypeÚpayloadÚhashret)r   r   r   r   r       s    zWPA_key.hashretc                 C   s   t |tƒrdS dS )Nr   r   )Ú
isinstancer
   )r   Úotherr   r   r   Úanswers#   s    
zWPA_key.answers)Ú__name__Ú
__module__Ú__qualname__Únamer   r   r   r   r   Zfields_descr   r   r"   r   r   r   r   r
      s    







ör
   é   )r   N)Zscapy.packetr   r   Zscapy.fieldsr   r   r   r   r   Zscapy.layers.eapr	   r
   r   r   r   r   Ú<module>   s   