3
@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   s4   || _ d| _x"t|j D ]}|| | j|< qW 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jd| d |  tjd}tj||}x|D ]}| j rVd S t	| j
d }t||krFtdd |D }	|	|d k rd S | jjd|  t|tkrt|}
y4|
d	tj| d
 7 }
td|
| j|}| j| W qF tk
r } z| jjd W Y d d }~X qFX qFW d S )NzReceived event, z, from z'([A-Za-z0-9+\/]+\=\=|[A-Za-z0-9+\/]+\=)r   c             s   s   | ]}|j  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)r0   
__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   