OwlCyberSecurity - MANAGER
Edit File: dnskey.cpython-36.pyc
3 �g @������������������@���sJ���d�dl�Z�d�dlZd�dlZd�dlmZmZ�G�dd��de�ZG�dd��d�ZdS�)�����N)�Popen�PIPEc�������������������s���e�Zd�Z��fdd�Z���ZS�)�TimePastc����������������s���t�t|��jd|||f���d�S�)Nz'%s time for key %s (%d) is already past)�superr����__init__)�self�key�prop�value)� __class__���/usr/lib/python3.6/dnskey.pyr������s����zTimePast.__init__)�__name__� __module__�__qualname__r���� __classcell__r���r���)r���r ���r������s���r���c���������������@���s���e�Zd�ZdZdqZdrZdsZdtd!d"�Zd#d$��Zd%d&��Z e dud'd(��Zd)d*��Ze d+d,���Ze d-d.���Zdvd/d0�Ze d1d2���Ze d3d4���Ze d5d6���Ze d7d8���Zd9d:��Zd;d<��Zd=d>��Zd?d@��ZdAdB��ZdCdD��Zej��fdEdF�ZdGdH��Zej��fdIdJ�ZdKdL��Zej��fdMdN�Z dOdP��Z!ej��fdQdR�Z"dSdT��Z#ej��fdUdV�Z$dWdX��Z%ej��fdYdZ�Z&d[d\��Z'ej��fd]d^�Z(d_d`��Z)dadb��Z*dcdd��Z+dedf��Z,dgdh��Z-didj��Z.dwdkdl�Z/dxdmdn�Z0e dodp���Z1dS�)y�dnskeyztAn individual DNSSEC key. Identified by path, name, algorithm, keyid. Contains a dictionary of metadata events.�Created�Publish�Activate�Inactive�Delete�Revoke� DSPublish�SyncPublish� SyncDeleteN�-P�-A�-I�-D�-R�-Psync�-Dsync�RSAMD5�DH�DSA�ECC�RSASHA1�NSEC3DSA�NSEC3RSASHA1� RSASHA256� RSASHA512�ECCGOST�ECDSAP256SHA256�ECDSAP384SHA384�ED25519�ED448c�������������C���s����t�|t�r:t|�dkr:|pd|�_|\}}}|�j||||��|pLtjj|�pLd|�_tjj|�}|j d�\}}}|dd��}t |�}t |j d�d��}|�j||||��d�S�)N�����.�+����r������)� isinstance�tuple�len�_dir� fromtuple�os�path�dirname�basename�split�int)r���r���Z directory�keyttl�name�alg�keyidr���r���r ���r���&���s���� zdnskey.__init__c����������������s���|j�d�r|}|jd�}n|d�}d|||f�}|�j|�jr@tjpBd�|�d�}|�j|�jr^tjp`d�|�d�}||�_||�_t|�|�_t|�|�_ ||�_ t|d�} x�| D�]z����d�dkr�q���j��} | s�q�| d �j ��dkr�d }||�_nd}|s�t| d ��n||�_t| |��d @�d k�rd|�_q�d|�_q�W�| j���t|d�}t��|�_t��|�_t��|�_t��|�_t��|�_t��|�_t��|�_d�|�_x�|D�]�����j��������sv��d�dk�r��qv��fdd�dD��t���g�} tdd��| D���}��d�|��j��}��|d���jd�j��}||�j|<��qvW�x�tjD�]�}d|�j|<�||�jk�rn|�j|�j|��}||�j|<�|�j |�|�j|<�|�j!|�|�j|<�|�j|�|�j|<�n(d�|�j|<�d�|�j|<�d�|�j|<�d�|�j|<��qW�|j���d�S�)Nr2���z K%s+%03d+%05d��z.keyz.private�rr����;r4����in�ch�hsr1�������TFZrUz!#c����������������s���g�|�]}��j�|��qS�r���)�find)�.0�c)�liner���r ���� <listcomp>l���s����z$dnskey.fromtuple.<locals>.<listcomp>z:= c�������������S���s���g�|�]}|dkr|�qS�)r4���r5���r���)rM����posr���r���r ���rP���m���s����)rH���rI���rJ���)"�endswith�rstripr9���r;����sep�keystrrB���r@���rC���rD����fullname�openr?����lower�ttl�close�dictZmetadata�_changed�_delete�_times�_fmttime�_timestamps� _original�_origttl�stripr8����min�lstripr����_PROPS� parsetime� formattime� epochfromtime)r���rB���rC���rD���rA���rV���rU���Zkey_fileZprivate_fileZkfp�tokensZseptokenZpfpZpunctuation�foundr ���r ����tr���)rO���r ���r:���5���sv���� zdnskey.fromtuplec�������������K���sr��|j�dd�}g�}d}|�jd�k r0|dt|�j�g7�}xlttjtj�D�]Z\}}|�s@|�j|��r\q@d}||�j krx|�j |�rxd}|r�dn|�j |�} ||| g7�}d}q@W�|�rn|d|�jg|�|�jg�} |s�t ddj| ����y0t| ttd �}|j��\}} | �r�tt| ���W�n8�tk �r:�}�ztd |t|�f���W�Y�d�d�}~X�nX�d�|�_x*tjD�] }|�j|�|�j|<�d|�j|<��qJW�d�S�)N�quietFTz-LZnonez-Kz# � )�stdout�stderrzunable to run %s: %s)�getrb����strrY����zipr���rf����_OPTSr\���r]���r_���r9���rU����print�joinr���r����communicate� Exceptionr`���ra���)r���Zsettime_bin�kwargsrm����cmd�firstr ����opt�deleteZwhenZfullcmd�pro���rp����er���r���r ����commit����s<���� "z dnskey.commitc�������������K���sL��|j�dd�}|dd|dt|�g} |r0| d|g7�} |r>| jd��|rN| d|g7�} |rb| d t|�g7�} | r�tj| �}| d tj|�g7�} | r�tj| �}| dtj| �g7�} | j|��|s�tdd j| ����t| t t d�}|j ��\}}|r�tdt|����y"|j��d�j d�}t|||�}|S��tk �rF�}�ztdt|����W�Y�d�d�}~X�nX�d�S�)Nrm���Fz-qz-Kz-Lz-rz-fkz-az-bz-Pz-Az# rn���)ro���rp���zunable to generate key: r����asciiz!unable to parse generated key: %s)rq���rr����appendr���� timefromepochrh���ru���rv���r���r���rw���rx���� splitlines�decode)�cls� keygen_bin� randomdevZkeys_dirrB���rC���ZkeysizerT���rY����publish�activatery���rm���� keygen_cmdrl���r~���ro���rp���rU����newkeyr���r���r���r ����generate����s:���� zdnskey.generatec���������� ���K���s����|j�dd�}|�j��s td|����|dd|�jd|�jg}|�jrL|dt|�j�g7�}|r\|d|g7�}|rp|d t|�g7�}|s�td dj|����t |t t d�}|j��\}} | r�td | ���y&|j��d�j d�} t| |�j|�j�}|S����td|����Y�nX�d�S�)Nrm���Fz'predecessor key %s has no inactive datez-qz-Kz-Sz-Lz-rz-iz# rn���)ro���rp���zunable to generate key: r���r����z'unable to generate successor for key %s)rq����inactiverx���r9���rU���rY���rr���ru���rv���r���r���rw���r����r����r���)r���r����r����Z prepublishry���rm���r����r~���ro���rp���rU���r����r���r���r ����generate_successor����s,����zdnskey.generate_successorc�������������C���s0���d�}|�t�ttj��kr tj|��}|r(|S�d|��S�)Nz%03d)�ranger8���r���� _ALGNAMES)rC���rB���r���r���r ����algstr����s���� z dnskey.algstrc�������������C���s6���|�sd�S�|�j���}�ytjj|��S��tk r0���d�S�X�d�S�)N)�upperr���r�����index� ValueError)rC���r���r���r ����algnum����s����z dnskey.algnumc�������������C���s���|�j�|p|�j�S�)N)r����rC���)r���rC���r���r���r ����algname��s����zdnskey.algnamec�������������C���s ���t�j|��S�)N)�timeZgmtime)�secsr���r���r ���r������s����zdnskey.timefromepochc�������������C���s���t�j|�d�S�)Nz%Y%m%d%H%M%S)r����Zstrptime)�stringr���r���r ���rg�����s����zdnskey.parsetimec�������������C���s ���t�j|��S�)N)�calendarZtimegm)rl���r���r���r ���ri�����s����zdnskey.epochfromtimec�������������C���s���t�jd|��S�)Nz%Y%m%d%H%M%S)r����Zstrftime)rl���r���r���r ���rh�����s����zdnskey.formattimec�������������K���s����|j�dd�}|�j|�|krd�S�|�j|�d�k rR|�j|�|k�rR|�rRt|�||�j|���|d�kr�|�j|�d�krldnd|�j|<�d|�j|<�d�|�j|<�d�|�j|<�d�|�j|<�d�S�|�j|�}||�j|<�||�j|<�|�j |�|�j|<�|�j|�|�j|�kr�dnd|�j|<�d�S�)N�forceFT) rq���r`���ra���r���r\���r]���r^���r_���r����rh���)r���r ���r�����nowry���r����rl���r���r���r ����setmeta��s$���� zdnskey.setmetac�������������C���s ���|�j�|�S�)N)r^���)r���r ���r���r���r ����gettime2��s����zdnskey.gettimec�������������C���s ���|�j�|�S�)N)r_���)r���r ���r���r���r ���� getfmttime5��s����zdnskey.getfmttimec�������������C���s ���|�j�|�S�)N)r`���)r���r ���r���r���r ����gettimestamp8��s����zdnskey.gettimestampc�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ����created;��s����zdnskey.createdc�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ����syncpublish>��s����zdnskey.syncpublishc�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ����setsyncpublishA��s����zdnskey.setsyncpublishc�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ���r����D��s����zdnskey.publishc�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ���� setpublishG��s����zdnskey.setpublishc�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ���r����J��s����zdnskey.activatec�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ����setactivateM��s����zdnskey.setactivatec�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ����revokeP��s����z dnskey.revokec�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ���� setrevokeS��s����zdnskey.setrevokec�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ���r����V��s����zdnskey.inactivec�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ����setinactiveY��s����zdnskey.setinactivec�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ���r}���\��s����z dnskey.deletec�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ���� setdelete_��s����zdnskey.setdeletec�������������C���s ���|�j�d�S�)Nr���)r`���)r���r���r���r ���� syncdeleteb��s����zdnskey.syncdeletec�������������K���s���|�j�d||f|��d�S�)Nr���)r����)r���r����r����ry���r���r���r ���� setsyncdeletee��s����zdnskey.setsyncdeletec�������������C���sR���|d�ks|�j�|krd�S�|�jd�kr0|�j�|�_||�_�n|�j|krHd�|�_||�_�n||�_�d�S�)N)rY���rb���)r���rY���r���r���r ����setttlh��s���� z dnskey.setttlc�������������C���s���|�j�r dS�dS�)N�KSK�ZSK)rT���)r���r���r���r ����keytypet��s����zdnskey.keytypec�������������C���s���d|�j�|�j��|�jf�S�)Nz %s/%s/%05d)rB���r����rD���)r���r���r���r ����__str__w��s����zdnskey.__str__c�������������C���s"���d|�j�|�j��|�j|�jrdndf�S�)Nz%s/%s/%05d (%s)r����r����)rB���r����rD���rT���)r���r���r���r ����__repr__{��s����zdnskey.__repr__c�������������C���s���|�j���p|�j��p|�j��S�)N)r����r����r����)r���r���r���r ����date���s����zdnskey.datec�������������C���s@���|�j�|j�kr|�j�|j�k�S�|�j|jkr0|�j|jk�S�|�j��|j��k�S�)N)rB���rC���r����)r����otherr���r���r ����__lt__���s ����z dnskey.__lt__c�������������C���s����dd��}|s|}t�tj���}|�j��}|�j��}|s4dS�|sT||krP|dt|�����dS�||krh||krhdS�||kr�|dt|��tj|�j�p�df���dS�||k�r�|dt|�����dS�|�jd�k r�||�|�jk�r�|d t|��tj|�j�p�df���dS�dS�) Nc��������������_���s���d�S�)Nr���)�argsry���r���r���r ����noop���s����z!dnskey.check_prepub.<locals>.noopFzFWARNING: Key %s is scheduled for activation but not for publication.Tz�WARNING: %s is scheduled to be published and activated at the same time. This could result in a coverage gap if the zone was previously signed. Activation should be at least %s after publication.zone DNSKEY TTLz0WARNING: Key %s is active before it is publishedz�WARNING: Key %s is activated too soon after publication; this could result in coverage gaps due to resolver caches containing old data. Activation should be at least %s after publication.)r@���r����r����r�����reprr����durationrY���)r����outputr����r�����ar~���r���r���r ����check_prepub���s<����zdnskey.check_prepubc�������������C���s����dd��}|d�kr|}|d�kr"|�j�}|d�kr>|dt|�����d}tj��}|�j��}|�j��}|s^dS�|s~||krz|dt|�����dS�||k�r�||k�r�dS�||k�r�|d t|�����dS�||�|k�r�|d t|��tj|�f���dS�dS�) Nc��������������_���s���d�S�)Nr���)r����ry���r���r���r ���r�������s����z"dnskey.check_postpub.<locals>.noopz"WARNING: Key %s using default TTL.�<�������FzEWARNING: Key %s is scheduled for deletion but not for inactivation.Tz@WARNING: Key %s is scheduled for deletion before inactivation.z�WARNING: Key %s scheduled for deletion too soon after deactivation; this may result in coverage gaps due to resolver caches containing old data. Deletion should be at least %s after inactivation.i��i�Q�)rY���r����r����r}���r����r���r����)r���r����Ztimespanr����r�����d�ir���r���r ���� check_postpub���s:����zdnskey.check_postpubc�������������C���sz���|�sd�S�ddddddg}g�}xR|D�]J}|�|d��|�|d���}}�|dkr"|j�d ||d�|dkrbdndf���q"W�dj|�S�) N�yearr����r����im���month�����day�hour�minute�secondr4���r���z%d %s%s�srE���z, i��i�Q��3�)r����r����i��i�Q����'�)r����r����i���Q�)r����r�������)r����r����)r����r����)r����r4���)r����rv���)r����Zunitsr����Zunit�vr���r���r ���r�������s���� (zdnskey.duration) r���r���r���r���r���r���r���r���r���) Nr���r���r���r���r ���Nr!���r"���)Nr#���r$���r%���r&���r'���r(���r)���r*���Nr+���Nr,���r-���r.���r/���r0���)NN)NN)N)N)NN)2r���r���r����__doc__rf���rt���r����r���r:���r�����classmethodr����r�����staticmethodr����r����r����r����rg���ri���rh���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r}���r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r ���r������sb������� M%* 1 -r���) r;���r����r����� subprocessr���r���rx���r���r���r���r���r���r ����<module>���s ���