a
    kÄ#d~
  ã                   @   sd   d Z ddlmZmZmZmZ ddlmZmZm	Z	m
Z
 ddlmZ dZG dd„ dee
ƒZe e¡ dS )	z•
scapy.contrib.altbeacon - AltBeacon Bluetooth LE proximity beacons.

The AltBeacon specification can be found at: https://github.com/AltBeacon/spec
é    )Ú	ByteFieldÚ
ShortFieldÚSignedByteFieldÚStrFixedLenField)ÚEIR_HdrÚEIR_Manufacturer_Specific_DataÚ	UUIDFieldÚLowEnergyBeaconHelper)ÚPacketi  c                   @   sf   e Zd ZdZd ZdZedeeeƒƒeddƒe	ddƒe	ddƒe
ddƒed	dƒgZed
d„ ƒZdd„ ZdS )Ú	AltBeaconzP
    AltBeacon broadcast frame type.

    https://github.com/AltBeacon/spec
    s   ¾¬ÚheaderZid1NZid2Zid3Ztx_powerZmfg_reservedc                 C   s   |  | j¡S )zW
        Checks if the given payload is for us (starts with our magic string).
        )Ú
startswithÚmagic)ÚclsÚpayload© r   úN/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/altbeacon.pyÚmagic_check=   s    zAltBeacon.magic_checkc                 C   s   t jtƒ ttd� |  g S )z1Builds a list of EIR messages to wrap this frame.)Z
company_id)r	   Zbase_eirr   r   ÚRADIUS_NETWORKS_MFG)Úselfr   r   r   Ú	build_eirD   s    ÿÿÿzAltBeacon.build_eir)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   Úlenr   r   r   r   Zfields_descÚclassmethodr   r   r   r   r   r   r   %   s   ó
r   N)r   Zscapy.fieldsr   r   r   r   Zscapy.layers.bluetoothr   r   r   r	   Zscapy.packetr
   r   r   Zregister_magic_payloadr   r   r   r   Ú<module>   s   *