%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/crypto-policies/python/__pycache__/
Upload File :
Create Path :
Current File : //usr/share/crypto-policies/python/__pycache__/build-crypto-policies.cpython-39.pyc

a

C�h��@s�ddlZddlZddlZddlZddlZddlZddlZdZdd�Zdd�Z	dd�Z
dd	d
�Zdd�Zd
d�Z
edkr|e
�dS)�Nzreload-cmds.shcOst|dtji|��dS)N�file)�print�sys�stderr)�args�kwargs�r�:/usr/share/crypto-policies/python/build-crypto-policies.py�eprintsr
cCs�tjdd�}|jdddd�|jdddd�|jd	td
dd�|jd
ddd�|jdddd�|jddd�|jddd�|��S)zParse the command lineF)�allow_abbrevz--flat�
store_truez1put all the generated files in a single directory)�action�helpz--testz7compare the generated config file with the existing onez--policyZPOLICYz"generate the specified policy only)�type�metavarrz--reloadcmdszDalso save reload cmds into reload-cmds.sh script in output directoryz--strictzfail on warnings�	policydirz5a directory with base policy definition files (*.pol))r�	outputdirz.a target directory with generated config files)�argparse�ArgumentParser�add_argument�str�
parse_args)�parserrrr	rs.��
�����rc
Cs�|jr$tj�|j|�d|�d��}n`tj�|j|�}tj�|�srzt�|�Wn"typtd|���YdS0tj�||d�}|j	�rVz�t
|dd��}|��}Wd�n1s�0Y||k�rtd|�d|�d	��d
d�}tj
||�||�||dd
�}	tj�|	�WdSWdSt�y2Yn$t�yTtd|���YdS0td|�d|���t
|ddd��}|�|�Wd�n1�s�0Yt�dS)N�-z.txtz#Cannot create directory for policy F�utf-8)�encodingzConfig for z for policy z differs from the existing one:cSsdd�|�d�D�S)NcSsg|]}|d�qS)�
r)�.0�lrrr	�
<listcomp>G�z.save_config.<locals>.lines.<locals>.<listcomp>r)�split)�srrr	�linesFszsave_config.<locals>.linesz.new)ZfromfileZtofileTzError reading generated file zSaving config for �w��moder)Zflat�os�path�joinr�isdir�mkdir�OSErrorr
�test�open�read�difflibZunified_diffrr�
writelines�FileNotFoundErrorr�write)
�cmdline�policy_nameZconfig_name�configr(�dirpath�fZ
old_configr#�diffrrr	�save_config0sH
�&
�*r:c
Cs(d}|durg}ztj|g|�Rd|ji�}Wn6tyd}ztdt|��WYd}~dSd}~00dd�tt�D�}|D]�}tj|}|�}	|	�	|�
|	j��}
|dvs�|	�|
��rz(d�
|g|��}t|||	j|
�s�d	}Wn.t�ytd
|	j�td�d}Yn0q|td
|	j�d}q||S)NrrzError: �cSsg|]}d|vr|�qS��	Generatorr�r�grrr	rhr z build_policy.<locals>.<listcomp>>ZEMPTYz	GOST-ONLY�:�zError saving config for zKeeping original configuration�zError testing config for �)�cryptopoliciesZUnscopedCryptoPolicyr�
ValueErrorr
r�dir�policygenerators�__dict__Zgenerate_configZscopedZSCOPESZtest_configr)r:ZCONFIG_NAMEr,)r4r5�subpolicy_names�errZcp�e�
generatorsr?�cls�genr6�namerrr	�build_policy[s:��

rPcCs�d}dd�tt�D�}tj�|jt�}zRt|ddd��0}|D]}tj|}|�	|j
�q<Wd�n1sl0YWnty�td�d}Yn0|S)	NrcSsg|]}d|vr|�qSr<rr>rrr	r�r z$save_reload_cmds.<locals>.<listcomp>r$rr%zError saving reload cmds�)
rFrGr'r(r)r�RELOAD_CMD_NAMEr.rHr3Z
RELOAD_CMDr,r
)r4rJrLr(r8r?rMrrr	�save_reload_cmds~s
0
rScCs�t�}d}|jrt�d�|jrPdd�|j���d�D�}|^}}t|||�}nzt�	|j
��^}|D]H}|j�d�sb|j
dd�rbtj�|j�\}}|d	krbt||�}|rbq�qbWd
�n1s�0Y|s�|jr�t|�}t�|�d
S)z!The actual command implementationr�errorcSsg|]}|r|�qSrr)r�nrrr	r�r zmain.<locals>.<listcomp>r@�.F)�follow_symlinksz.polN)r�strict�warnings�filterwarningsZpolicy�upperr!rPr'�scandirrrO�
startswith�is_filer(�splitextZ
reloadcmdsrSr�exit)r4rJ�namesr5rI�sd�i�extrrr	�main�s(

$
re�__main__)N)rr0r'rrYrDrGrRr
rr:rPrSre�__name__rrrr	�<module>s+
#

Zerion Mini Shell 1.0