3 ."d@sDddlmZmZddlmZddlZddlmZGdddeZdS)) check_outputCalledProcessError)mkstempN)ConfigGeneratorc @sXeZdZdZddhZdZdddddddd dZdddddZeddZ eddZ dS)! BindGeneratorZbindZdnssecz>systemctl try-reload-or-restart bind.service 2>/dev/null || : DSANSEC3DSARSASHA1 NSEC3RSASHA1 RSASHA256 RSASHA512ECDSAP256SHA256ECDSAP384SHA384ED25519ED448)zDSA-SHA1zRSA-SHA1z RSA-SHA2-256z RSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-384z EDDSA-ED25519z EDDSA-ED448zSHA-1zSHA-256zSHA-384GOST)ZSHA1zSHA2-256zSHA2-384rc Cs |j}d}|d7}|d7}|d7}xL|dD]@}y&x |j|D]}||d7}q>WWq,tk rjYq,Xq,Wd|dkrd|d kr|d 7}d |dkrd |d kr|d 7}|d7}|d7}x>|dD]2}y||j|d7}Wqtk rYqXqW|d7}|S)Nzdisable-algorithms "." { zRSAMD5; z ECCGOST; Zsignz; z ECDSA-SHA256Z SECP256R1groupzECDSAP256SHA256; z ECDSA-SHA384Z SECP384R1zECDSAP384SHA384; z}; zdisable-ds-digests "." { hash)Zdisabled sign_not_mapKeyError hash_not_map)clsZpolicyZipsiZ disabled_signr;./usr/share/crypto-policies/python/policygenerators/bind.pygenerate_config%s0  zBindGenerator.generate_configcCst\}}ztj|d$}|jd|j||jdWdQRXytd|g}Wn>tk r~|jd|jd|dStk rYnXWdtj|XdS) Nwz options { z }; z/usr/sbin/named-checkconfz*There is an error in bind generated policyz Policy: %sFT) rosfdopenwriterrZeprintOSErrorunlink)rconfigfdpathf_rrr test_configCs       zBindGenerator.test_configN)rr )r r )r )r )r)r)r)r) __name__ __module__ __qualname__Z CONFIG_NAMEZSCOPESZ RELOAD_CMDrr classmethodrr*rrrrr s" r) subprocessrrZtempfilerr Zconfiggeneratorrrrrrrs