
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
."Édç  ã               @   sD   d dl mZmZ d dlmZ d dlZddlmZ G dd„ deƒZdS )é    )Úcheck_outputÚCalledProcessError)ÚmkstempNé   )ÚConfigGeneratorc            	   @   sX   e Zd ZdZddhZdZdddddddd dœZdddddœZedd„ ƒZ	edd„ ƒZ
dS )!ÚBindGeneratorZbindZdnssecz>systemctl try-reload-or-restart bind.service 2>/dev/null || :
ÚDSAÚNSEC3DSAÚRSASHA1ÚNSEC3RSASHA1Ú	RSASHA256Ú	RSASHA512ÚECDSAP256SHA256ÚECDSAP384SHA384ÚED25519ÚED448)zDSA-SHA1zRSA-SHA1zRSA-SHA2-256zRSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-384zEDDSA-ED25519zEDDSA-ED448zSHA-1zSHA-256zSHA-384ÚGOST)ZSHA1zSHA2-256zSHA2-384r   c             C   s  |j }d}|d7 }|d7 }|d7 }xL|d D ]@}y&x | j| D ]}||› d�7 }q>W W q, tk
rj   Y q,X q,W d|d kr�d|d	 kr�|d
7 }d|d kr°d|d	 kr°|d7 }|d7 }|d7 }x>|d D ]2}y|| j| › d�7 }W qÊ tk
rú   Y qÊX qÊW |d7 }|S )NÚ zdisable-algorithms "." {
zRSAMD5;
z	ECCGOST;
Zsignz;
zECDSA-SHA256Z	SECP256R1ÚgroupzECDSAP256SHA256;
zECDSA-SHA384Z	SECP384R1zECDSAP384SHA384;
z};
zdisable-ds-digests "." {
Úhash)ZdisabledÚsign_not_mapÚKeyErrorÚhash_not_map)ÚclsZpolicyZipÚsÚiZdisabled_sign© r   ú;./usr/share/crypto-policies/python/policygenerators/bind.pyÚgenerate_config%   s0    

zBindGenerator.generate_configc             C   s¦   t ƒ \}}zŠtj|dƒ�$}|jdƒ |j|ƒ |jdƒ W d Q R X ytd|gƒ}W n> tk
r~   | jdƒ | jd| ƒ dS  tk
r�   Y nX W d tj|ƒ X dS )	NÚwz
options {
z
};
z/usr/sbin/named-checkconfz*There is an error in bind generated policyz
Policy:
%sFT)	r   ÚosÚfdopenÚwriter   r   ZeprintÚOSErrorÚunlink)r   ÚconfigÚfdÚpathÚfÚ_r   r   r   Útest_configC   s     




zBindGenerator.test_configN)r   r	   )r
   r   )r   )r   )r   )r   )r   )r   )Ú__name__Ú
__module__Ú__qualname__ZCONFIG_NAMEZSCOPESZ
RELOAD_CMDr   r   Úclassmethodr   r*   r   r   r   r   r      s"   r   )	Ú
subprocessr   r   Ztempfiler   r    Zconfiggeneratorr   r   r   r   r   r   Ú<module>   s   