관리-도구
편집 파일: dnskey.cpython-39.opt-1.pyc
a ����&�"h@����������������������@���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|���d|||f���d�S�)Nz'%s time for key %s (%d) is already past)�superr����__init__)�self�key�prop�value�� __class__���./usr/lib/python3.9/site-packages/isc/dnskey.pyr������s�����zTimePast.__init__)�__name__� __module__�__qualname__r���� __classcell__r ���r ���r���r���r������s���r���c�������������������@���s���e�Zd�ZdZdZdZdZdVdd�Zdd ��Zd d��Z e dWdd ��Zdd��Ze dd���Ze dd���ZdXdd�Ze dd���Ze dd���Ze dd���Ze dd���Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Ze���fd*d+�Zd,d-��Ze���fd.d/�Zd0d1��Ze���fd2d3�Z d4d5��Z!e���fd6d7�Z"d8d9��Z#e���fd:d;�Z$d<d=��Z%e���fd>d?�Z&d@dA��Z'e���fdBdC�Z(dDdE��Z)dFdG��Z*dHdI��Z+dJdK��Z,dLdM��Z-dNdO��Z.dYdPdQ�Z/dZdRdS�Z0e dTdU���Z1dS�)[�dnskeyztAn individual DNSSEC key. Identified by path, name, algorithm, keyid. Contains a dictionary of metadata events.) �Created�Publish�Activate�Inactive�Delete�RevokeZ DSPublish�SyncPublish� SyncDelete) N�-P�-Az-Iz-Dz-RNz-Psyncz-Dsync)NZRSAMD5ZDHZDSANZRSASHA1ZNSEC3DSAZNSEC3RSASHA1Z RSASHA256NZ RSASHA512NZECCGOSTZECDSAP256SHA256ZECDSAP384SHA384ZED25519ZED448Nc�����������������C���s����t�|t�r:t|�dkr:|pd|�_|\}}}|��||||��|pLtj�|�pLd|�_tj�|�}|� d�\}}}|dd��}t |�}t |� d�d��}|��||||��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���|��d�r|}|�d�}n|d�}d|||f�}|�j|�jr@tjpBd�|�d�}|�j|�jr^tjp`d�|�d�}||�_||�_t|�|�_t|�|�_ ||�_ t|d�} | D�]z����d�dkr�q������} | s�q�| d �� ��d v�r�d}||�_nd}|s�t| d ��n||�_t| |��d @�d k�rd |�_q�d|�_q�| ����t|d�}t��|�_t��|�_t��|�_t��|�_t��|�_t��|�_t��|�_d�|�_|D�]�������������rp��d�dv��r��qp��fdd�dD��t���g�} tdd��| D���}��d�|�����}��|d����d����}||�j|<��qptjD�]�}d|�j|<�||�jv��rb|��|�j|��}||�j|<�|�� |�|�j|<�|��!|�|�j|<�|�j|�|�j|<�n(d�|�j|<�d�|�j|<�d�|�j|<�d�|�j|<��q�|����d�S�)Nr���z K%s+%03d+%05d��z.keyz.private�rr����;r!���)�inZchZhsr�������TFZrUz!#c��������������������s���g�|�]}����|��qS�r ���)�find)�.0�c��liner ���r���� <listcomp>l��������z$dnskey.fromtuple.<locals>.<listcomp>z:= c�����������������S���s���g�|�]}|d�kr|�qS�)r"���r ���)r8����posr ���r ���r���r<���m���r=���)"�endswith�rstripr&���r(����sep�keystrr/���r-���r0���r1����fullname�openr,����lower�ttl�close�dict�metadata�_changed�_delete�_times�_fmttime�_timestamps� _original�_origttl�stripr%����min�lstripr����_PROPS� parsetime� formattime� epochfromtime)r���r/���r0���r1���r.���rC���rB���Zkey_fileZprivate_fileZkfp�tokensZseptokenZpfpZpunctuation�foundr ���r ����tr ���r:���r���r'���5���s~���� �� zdnskey.fromtuplec�������������� ���K���sf��|��dd�}g�}d}|�jd�ur0|dt|�j�g7�}ttjtj�D�]V\}}|r>|�j|�sVq>d}||�j v�rr|�j |�rrd}|rzdn|�j |�} ||| g7�}d}q>|�rb|d|�jg|�|�jg�} |s�t dd�| ����z.t| ttd �}|���\}} | r�tt| ���W�n:�t�y2�}�z td |t|�f���W�Y�d�}~n d�}~0�0�d�|�_tjD�] }|�j|�|�j|<�d|�j|<��q@d�S�)N�quietFT�-LZnone�-K�# � ��stdout�stderrzunable to run %s: %s)�getrP����strrF����zipr���rT����_OPTSrJ���rK���rM���r&���rB����print�joinr���r����communicate� ExceptionrN���rO���)r���Zsettime_bin�kwargsr[����cmd�firstr ����opt�deleteZwhenZfullcmd�pra���rb����er ���r ���r����commit����s>���� � z dnskey.commitc�������������� ���K���sP��|��dd�}|dd|dt|�g} |r0| d|g7�} |r>| �d��|rN| d|g7�} |rb| d t|�g7�} | r�t�| �}| d t�|�g7�} | r�t�| �}| dt�| �g7�} | �|��|s�tdd �| ����t| t t d�}|� ��\}}|r�tdt|����z$|���d�� d�}t|||�}|W�S��t�yJ�}�ztdt|����W�Y�d�}~n d�}~0�0�d�S�)Nr[���F�-qr]���r\����-rz-fkz-az-br���r���r^���r_���r`����unable to generate key: r����asciiz!unable to parse generated key: %s)rc���rd����appendr���� timefromepochrV���rg���rh���r���r���ri���rj���� splitlines�decode)�cls� keygen_bin� randomdevZkeys_dirr/���r0���ZkeysizerA���rF����publish�activaterk���r[���� keygen_cmdrZ���rp���ra���rb���rB����newkeyrq���r ���r ���r����generate����s:���� zdnskey.generatec�����������������K���s����|��dd�}|����s td|����|dd|�jd|�jg}|�jrL|dt|�j�g7�}|r\|d|g7�}|rp|d t|�g7�}|s�td d�|����t |t t d�}|���\}} | r�td | ���z(|���d�� d�} t| |�j|�j�}|W�S����td|����Y�n0�d�S�)Nr[���Fz'predecessor key %s has no inactive daters���r]���z-Sr\���rt���z-ir^���r_���r`���ru���r���rv���z'unable to generate successor for key %s)rc����inactiverj���r&���rB���rF���rd���rg���rh���r���r���ri���ry���rz���r���)r���r|���r}���Z prepublishrk���r[���r����rp���ra���rb���rB���r����r ���r ���r����generate_successor����s,����zdnskey.generate_successorc�����������������C���s0���d�}|�t�ttj��v�r tj|��}|r(|S�d|��S�)Nz%03d)�ranger%���r���� _ALGNAMES)r0���r/���r ���r ���r����algstr����s���� z dnskey.algstrc�����������������C���s8���|�sd�S�|�����}�ztj�|��W�S��ty2���Y�d�S�0�d�S��N)�upperr���r�����index� ValueError)r0���r ���r ���r����algnum����s����z dnskey.algnumc�����������������C���s���|���|p|�j�S�r����)r����r0���)r���r0���r ���r ���r����algname��s����zdnskey.algnamec�����������������C���s ���t��|��S�r����)�time�gmtime)�secsr ���r ���r���rx�����s����zdnskey.timefromepochc�����������������C���s���t��|�d�S��Nz%Y%m%d%H%M%S)r�����strptime)�stringr ���r ���r���rU�����s����zdnskey.parsetimec�����������������C���s ���t��|��S�r����)�calendarZtimegm�rZ���r ���r ���r���rW�����s����zdnskey.epochfromtimec�����������������C���s���t��d|��S�r����)r�����strftimer����r ���r ���r���rV�����s����zdnskey.formattimec�����������������K���s����|��dd�}|�j|�|krd�S�|�j|�d�urP|�j|�|k�rP|sPt|�||�j|���|d�u�r�|�j|�d�u�rjdnd|�j|<�d|�j|<�d�|�j|<�d�|�j|<�d�|�j|<�d�S�|��|�}||�j|<�||�j|<�|�� |�|�j|<�|�j|�|�j|�kr�dnd|�j|<�d�S�)N�forceFT) rc���rN���rO���r���rJ���rK���rL���rM���rx���rV���)r���r ���r�����nowrk���r����rZ���r ���r ���r����setmeta��s6�������� ��zdnskey.setmetac�����������������C���s ���|�j�|�S�r����)rL����r���r ���r ���r ���r����gettime2��s����zdnskey.gettimec�����������������C���s ���|�j�|�S�r����)rM���r����r ���r ���r���� getfmttime5��s����zdnskey.getfmttimec�����������������C���s ���|�j�|�S�r�����rN���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||fi�|���d�S�r�����r�����r���r����r����rk���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||fi�|���d�S�r����r����r����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||fi�|���d�S�r����r����r����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||fi�|���d�S�r����r����r����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||fi�|���d�S�r����r����r����r ���r ���r����setinactiveY��s����zdnskey.setinactivec�����������������C���s ���|�j�d�S��Nr���r����r����r ���r ���r���ro���\��s����z dnskey.deletec�����������������K���s���|�j�d||fi�|���d�S�r����r����r����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||fi�|���d�S�r����r����r����r ���r ���r���� setsyncdeletee��s����zdnskey.setsyncdeletec�����������������C���sR���|d�u�s|�j�|krd�S�|�jd�u�r0|�j�|�_||�_�n|�j|krHd�|�_||�_�n||�_�d�S�r����)rF���rP���)r���rF���r ���r ���r����setttlh��s���� z dnskey.setttlc�����������������C���s���|�j�r dS�dS�)N�KSK�ZSK)rA���r����r ���r ���r����keytypet��s����zdnskey.keytypec�����������������C���s���d|�j�|����|�jf�S�)Nz %s/%s/%05d)r/���r����r1���r����r ���r ���r����__str__w��s�����zdnskey.__str__c�����������������C���s"���d|�j�|����|�j|�jrdndf�S�)Nz%s/%s/%05d (%s)r����r����)r/���r����r1���rA���r����r ���r ���r����__repr__{��s ������zdnskey.__repr__c�����������������C���s���|�����p|����p|����S�r����)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�|����|���k�S�r����)r/���r0���r����)r����otherr ���r ���r����__lt__���s ����z dnskey.__lt__c�����������������C���s����dd��}|s|}t�t����}|����}|����}|s4dS�|sT||krP|dt|�����dS�||krh||krhdS�||kr�|dt|��t�|�j�p�df���dS�||k�r�|dt|�����dS�|�jd�ur�||�|�jk�r�|d t|��t�|�j�p�df���dS�dS�) Nc������������������_���s���d�S�r����r �����argsrk���r ���r ���r����noop���r=���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����durationrF���)r����outputr����r�����arp���r ���r ���r����check_prepub���sH����������zdnskey.check_prepubc�����������������C���s����dd��}|d�u�r|}|d�u�r"|�j�}|d�u�r>|dt|�����d}t���}|����}|����}|s^dS�|s~||krz|dt|�����dS�||k�r�||k�r�dS�||k�r�|dt|�����dS�||�|k�r�|d t|��t�|�f���dS�dS�) Nc������������������_���s���d�S�r����r ���r����r ���r ���r���r�������r=���z"dnskey.check_postpub.<locals>.noopz"WARNING: Key %s using default TTL.�Q�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.)rF���r����r����ro���r����r���r����)r���r����Ztimespanr����r�����d�ir ���r ���r���� check_postpub���s@�������zdnskey.check_postpubc�����������������C���sn���|�sd�S�g�d�}g�}|D�]J}|�|d��|�|d���}}�|dkr|��d||d�|dkrXdndf���qd�|�S�)N))Zyeari�3�)Zmonthi��'�)Zdayr����)Zhouri��)Zminute�<���)�secondr!���r!���r���z%d %s%s�sr2���z, )rw���rh���)r����Zunitsr����Zunit�vr ���r ���r���r�������s����&zdnskey.duration)NN)NN)N)N)NN)2r���r���r����__doc__rT���rf���r����r���r'���rr����classmethodr����r�����staticmethodr����r����r����rx���rU���rW���rV���r����r����r����r����r����r����r����r����r~���r����r���r����r����r����r����r����ro���r����r����r����r����r����r����r����r����r����r����r����r����r ���r ���r ���r���r������sj��� M%��+ 1 -r���) r(���r����r����� subprocessr���r���rj���r���r���r ���r ���r ���r����<module>���s ���