shell bypass 403
3
."�d� � @ sD d dl mZmZ d dlmZ d dlZddlmZ G dd� de�ZdS )� )�check_output�CalledProcessError)�mkstempN� )�ConfigGeneratorc @ sX e Zd ZdZddhZdZdddddddd d�Zddddd�Zedd� �Z edd� �Z
dS )!�
BindGeneratorZbindZdnssecz>systemctl try-reload-or-restart bind.service 2>/dev/null || :
�DSA�NSEC3DSA�RSASHA1�NSEC3RSASHA1� RSASHA256� RSASHA512�ECDSAP256SHA256�ECDSAP384SHA384�ED25519�ED448)zDSA-SHA1zRSA-SHA1zRSA-SHA2-256zRSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-384z
EDDSA-ED25519zEDDSA-ED448zSHA-1zSHA-256zSHA-384�GOST)ZSHA1zSHA2-256zSHA2-384r c C s |j }d}|d7 }|d7 }|d7 }xL|d D ]@}y&x | j| D ]}||� d�7 }q>W W q, tk
rj Y q,X q,W d|d kr�d|d kr�|d
7 }d|d kr�d|d kr�|d
7 }|d7 }|d7 }x>|d D ]2}y|| j| � d�7 }W q� tk
r� Y q�X q�W |d7 }|S )N� zdisable-algorithms "." {
zRSAMD5;
z ECCGOST;
Zsignz;
zECDSA-SHA256Z SECP256R1�groupzECDSAP256SHA256;
zECDSA-SHA384Z SECP384R1zECDSAP384SHA384;
z};
zdisable-ds-digests "." {
�hash)Zdisabled�sign_not_map�KeyError�hash_not_map)�clsZpolicyZip�s�iZ
disabled_sign� r �;./usr/share/crypto-policies/python/policygenerators/bind.py�generate_config% s0
zBindGenerator.generate_configc C s� t � \}}z�tj|d��$}|jd� |j|� |jd� W d Q R X ytd|g�}W n> tk
r~ | jd� | jd| � dS tk
r� Y nX W d tj|� X dS ) N�wz
options {
z
};
z/usr/sbin/named-checkconfz*There is an error in bind generated policyz
Policy:
%sFT) r �os�fdopen�writer r Zeprint�OSError�unlink)r �config�fd�path�f�_r r r �test_configC s
zBindGenerator.test_configN)r r )r
r )r )r
)r )r )r )r )�__name__�
__module__�__qualname__ZCONFIG_NAMEZSCOPESZ
RELOAD_CMDr r �classmethodr r* r r r r r
s"