U
    @6^
                     @   s8   d dl Z d dlZd dlmZmZmZ G dd deZdS )    N)
SpiderFootSpiderFootPluginSpiderFootEventc                   @   sF   e Zd ZdZddiZddiZe fddZdd Zd	d
 Z	dd Z
dS )
sfp_base64zBase64:Investigate,Passive:Content Analysis::Identify Base64-encoded strings in any content and URLs, often revealing interesting hidden information.	minlength
   zPThe minimum length a string that looks like a base64-encoded string needs to be.c                 C   s0   || _ d| _t| D ]}|| | j|< qd S )NzTarget Website)sf__dataSource__listkeysopts)selfsfcuserOptsopt r   5/var/www/spiderfoot.crq.systems/modules/sfp_base64.pysetup   s    zsfp_base64.setupc                 C   s   ddgS )NLINKED_URL_INTERNALTARGET_WEB_CONTENTr   r   r   r   r   watchedEvents'   s    zsfp_base64.watchedEventsc                 C   s   dgS )NBASE64_DATAr   r   r   r   r   producedEvents-   s    zsfp_base64.producedEventsc                 C   s$  |j }|j}|j}| jd| d |  td}t||}|D ]}|  rV d S t	| j
d }t||krDtdd |D }	|	|d k r d S | jd|  t|tkrt|}
z4|
d	t| d
 7 }
td|
| j|}| | W qD tk
r } z| jd W 5 d }~X Y qDX qDd S )NzReceived event, z, from z'([A-Za-z0-9+\/]+\=\=|[A-Za-z0-9+\/]+\=)r   c                 s   s   | ]}|  rd V  qdS )   N)isupper).0cr   r   r   	<genexpr>@   s      z)sfp_base64.handleEvent.<locals>.<genexpr>   zFound Base64 string: z ()r   z!Unable to base64-decode a string.)	eventTypemoduledatar   debugrecompilefindallcheckForStopintr   lensuminfotypestrbase64	b64decoder   __name__notifyListenersBaseException)r   event	eventNamesrcModuleName	eventDatapatmmatchZminlencapsstringevter   r   r   handleEvent1   s0    
 zsfp_base64.handleEventN)r1   
__module____qualname____doc__r   optdescsdictr   r   r   r?   r   r   r   r   r      s     r   )r/   r%   sflibr   r   r   r   r   r   r   r   <module>   s   