o
    id	                     @   s.   d dl mZmZmZmZ G dd deeZdS )    )PluginIndependentPluginSoSPredicate	PluginOptc                   @   s@   e Zd ZdZdZdZeddddgZdZd	Z	d
d Z
dd ZdS )	LibreswanzLibreswan IPsec	libreswan)networksecurity	openshift
ipsec-barfFzcollect ipsec barf output)defaultdesc)/etc/ipsec.conf)r   openswanc                 C   sj   |  g d | g d t| ddgddid}| jdd	g|d
 | dr,| d | g d d S )N)r   z/etc/ipsec.dz/proc/net/xfrm_stat)zipsec verifyzipsec whack --statuszipsec whack --listallzcertutil -L -d sql:/etc/ipsec.d	xfrm_user	xfrm_algokmodsall)r   requiredzip xfrm policyzip xfrm state)predr   z
ipsec barf)z/etc/ipsec.secretsz/etc/ipsec.secrets.dz/etc/ipsec.d/*.dbz/etc/ipsec.d/*.secrets)add_copy_specadd_cmd_outputr   
get_optionadd_forbidden_path)self	xfrm_pred r   >/usr/lib/python3/dist-packages/sos/report/plugins/libreswan.pysetup   s   


zLibreswan.setupc                 C   s2   d}|  d|d | dr|  d|d d S d S )Nz/(aead|auth|auth-trunc|enc)(\s.*\s)(0x[0-9a-f]+)statez\1\2********r   barf)do_cmd_output_subr   )r   xfrm_state_regexpr   r   r   postproc@   s   
zLibreswan.postprocN)__name__
__module____qualname__
short_descplugin_nameprofilesr   option_listfilespackagesr   r#   r   r   r   r   r      s    "r   N)sos.report.pluginsr   r   r   r   r   r   r   r   r   <module>   s   