Edit File: keymgr.cpython-36.pyc
3 9Pek������������������@���s����d�dl�mZ�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl mZ�dZd�dl mZmZmZmZmZmZ�dd��Zddd �Zd d��Zdd ��ZdS�)�����)�print_functionN)�defaultdictz dnssec-keymgr)�dnskey�keydict� keyseries�policy�parsetab�utilsc��������������O���s���t�|�|��tjd��d�S�)N����)�print�sys�exit)�args�kwargs��r����/usr/lib/python3.6/keymgr.py�fatal���s���� r���c�������������C���s����|}|�s(t�jj|��s(t�j|t�j��r�t�jd�}|s>t�jj}xB|jt�j�D�]2}|t�j �|��}t�jj|�rzt�j|t�j�rzP�d}qLW�|S�)a2�� find the location of a specified command. If a default is supplied, exists and it's an executable, we use it; otherwise we search PATH for an alternative. :param command: command to look for :param default: default value to use :return: PATH with the location of a suitable binary �PATHN) �os�path�isfile�access�X_OK�environ�defpath�split�pathsep�sep)Zcommand�defaultZfpathr���Z directoryr���r���r����set_path���s����$ r���c��������������C���s���t�dtjjtjd�d��}�t�dtjjtjd�d��}tjtd�d�}|j dt ddd;d��|j dd t ddd��|j ddt ddd��|j dd|�t dd d��|j ddt ddd d��|j dd|t dd d��|j d d!d"d#d$d%��|j d&d'd"d#d(d%��|j d)d*d+d"d#d<d%��|j d.d/d0d"d#d1d%��|j d2d3d4tjd5��|j��}|j �rJ|j�rJtd6��|jdk�r^td7��|jdk�rrtd8��|jdk �r�tjj|j��s�td9|j���n(tjjtjd:�|_tjj|j��s�d|_|S�)=zc Read command line arguments, returns 'args' object :return: args object properly prepared z dnssec-keygenZsbinzdnssec-settimezA: schedule DNSSEC key rollovers according to a pre-defined policy)�description�zone�*Nz.Zone(s) to which the policy should be applied z%(default: all zones in the directory))�type�nargsr����helpz-Kr���zDirectory containing keys�dir)�destr#���r%����metavarz-c� policyfilezPolicy definition file�filez-g�keygenzPath to 'dnssec-keygen')r'���r���r#���r%���r(���z-r� randomdevz@Path to a file containing random data to pass to 'dnssec-keygen')r'���r#���r���r%���r(���z-s�settimezPath to 'dnssec-settime'z-k�no_zsk� store_trueFz,Only apply policy to key-signing keys (KSKs))r'����actionr���r%���z-z�no_kskz-Only apply policy to zone-signing keys (ZSKs)z-fz--force�forcezForce updates to key events zeven if they are in the pastz-qz--quiet�quietzUpdate keys silentlyz-vz --version�version)r0���r4���z)ERROR: -z and -k cannot be used together.zERROR: dnssec-keygen not foundzERROR: dnssec-settime not foundz!ERROR: Policy file "%s" not foundzdnssec-policy.confzSZone(s) to which the policy should be applied (default: all zones in the directory)z8Force updates to key events even if they are in the past)r���r���r����joinr ����prefix�argparse�ArgumentParser�prog�add_argument�strr4���� parse_argsr.���r1���r���r+���r-���r)����existsZ sysconfdir)r+���r-����parserr���r���r���r���r<���6���sb����� r<���c�����������:���C���sH��t���}�|�j|�j|�j|�jd�}ytj|�j�}W�n2�tk r^�}�zt dt |����W�Y�d�d�}~X�nX�yt||�j|�jd�}W�n2�tk r��}�zt dt |����W�Y�d�d�}~X�nX�yt ||d�}W�n2�tk r��}�zt dt |����W�Y�d�d�}~X�nX�y |j||�j|�j|�j|�jd��W�n4�tk �rB�}�zt dt |����W�Y�d�d�}~X�nX�d�S�) N)Zkeygen_pathZsettime_pathZ keys_pathr,���zUnable to load DNSSEC policy: )r���Zzonesz Unable to build key dictionary: )�contextzUnable to build key series: )ZkskZzskr2���r3���zUnable to apply policy: )r<���r+���r-���r���r,���r���Z dnssec_policyr)���� Exceptionr���r;���r���r!���r���Zenforce_policyr.���r1���r2���r3���)r���r?���Zdp�eZkdZksr���r���r����main}���s,���� """rB���)N)Z __future__r���r���r���r7���Zglob�reZtimeZcalendar�pprint�collectionsr���r9���Ziscr���r���r���r���r���r ���r���r���r<���rB���r���r���r���r����<module>���s���@ G