JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/isc/__pycache__/coverage.cpython-39.opt-1.pyc

a

Γi�&�@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZdZddl
mZmZmZmZmZmZdd�Zdad	d
�Zdd�Zd
d�Zddd�Zdd�Zdd�ZdS)�)�print_functionN)�defaultdictzdnssec-coverage)�dnskey�	eventlist�keydict�keyevent�keyzone�utilscOst|i|��t�d�dS)N�)�print�sys�exit)�args�kwargs�r�0/usr/lib/python3.9/site-packages/isc/coverage.py�fatalsrTcOsNd|vr|d}|�dd�nd}tr,dan|r8td�|rJt|i|��dS)zuoutput text, adding a vertical space this is *not* the first
    first section being printed since a call to vreset()�skipNTF�)�pop�
_firstliner)rrrrrr�output'srcCsdadS)zreset vertical spacingTN)rrrrr�vreset8srcCs�|��}z
t|�WSty$Yn0t�d�}|�|�}|sJtd|��|��\}}t|�}|��}|�d�rx|dS|�d�r�|dS|�d�r�|dS|�d	�r�|d
S|�d�r�|dS|�d
�r�|dS|�d�r�|Std|��dS)z� convert a formatted time (e.g., 1y, 6mo, 15mi, etc) into seconds
    :param s: String with some text representing a time interval
    :return: Integer with the number of seconds in the time interval
    z([0-9][0-9]*)\s*([A-Za-z]*)zCannot parse %s�yi�3��moi�'�w�:	�di�Q�hi�mi�<�szInvalid suffix %sN)	�strip�int�
ValueError�re�compile�match�groups�lower�
startswith)r!�r�m�nZunitrrr�
parse_timeAs6









r.cCs~|}|r"tj�|�r"t�|tj�sztjd}|s8tjj}|�tj�D]4}tj�	||�}tj�|�rtt�|tj�rtqzd}qD|S)a1 find the location of a specified command.  if a default is supplied
    and it works, we use it; otherwise we search PATH for a match.
    :param command: string with a command to look for in the path
    :param default: default location to use
    :return: detected location for the desired command
    �PATHN)
�os�path�isfile�access�X_OK�environ�defpath�split�pathsep�join)Zcommand�defaultZfpathr1Z	directoryrrr�set_pathks
r;c	
Cs>tdtj�t�d�d��}tjtddd�}|j	dt
ddd	d
�|j	ddd
t
ddd�|j	ddt
ddd�|j	ddt
ddd�|j	ddt
ddd�|j	dddt
d dd�|j	d!d"|t
d#dd�|j	d$d%t
d&d'dd(�|j	d)d*d+d,d-d.�|j	d/d0d+d,d1d.�|j	d2d3d4d+d,d5d.�|j	d6d7d8tjd9�|��}|j
�rJ|j�rJtd:�n*|j
�sZ|j�rn|j
�rfd;nd<|_nd|_|j�r�t|j�d=k�r�td>�d?d@�|jD�|_z|j�r�t|j�}||_Wnt�y�Yn0z|j�r�t|j�}||_Wnt�yYn0z|j�r$t|j�}||_Wnt�y:Yn0z<|j�rv|j}t|j�}|dAk�rhd|_nt��||_Wnt�y�Yn0|j�r�|j�r�|S|j�r$|j�r$z:t|jdA|j|j�}|j�p�|j|_|j�p�|j|_Wn6t�y"}ztdB|j|�WYd}~n
d}~00|j�s:tdC�dD|_|S)Ez8Read command line arguments, set global 'args' structureznamed-compilezoneZsbinz: checks future zDNSKEY coverage for a zone)�description�zone�*Nz5zone(s) to check(default: all zones in the directory))�type�nargsr:�helpz-Kr1�.z&a directory containing keys to process�dir)�destr:r?rA�metavarz-f�filenamezzone master file�file)rDr?rArEz-m�maxttlzthe longest TTL in the zone(s)�timez-d�keyttlzthe DNSKEY TTLz-r�resignZ1944000z:the RRSIG refresh interval in seconds [default: 22.5 days]z-c�compilezonezpath to 'named-compilezone'z-l�
checklimit�0zDLength of time to check for DNSSEC coverage [default: 0 (unlimited)])rDr?r:rArEz-z�no_ksk�
store_trueFz#Only check zone-signing keys (ZSKs))rD�actionr:rAz-k�no_zskz"Only check key-signing keys (KSKs)z-Dz--debugZ
debug_modezTurn on debugging outputz-vz	--version�version)rQrSz)ERROR: -z and -k cannot be used together.ZKSKZZSKr
z)ERROR: -f can only be used with one zone.cSs4g|],}t|�dkr,|ddkr,|dd�n|�qS)r
���rBN)�len)�.0�xrrr�
<listcomp>�s�zparse_args.<locals>.<listcomp>rz"Unable to load zone data from %s: z�WARNING: Maximum TTL value was not specified.  Using 1 week
	 (604800 seconds); re-run with the -m option to get more
	 accurate results.r) r;r0r1r9r	�prefix�argparse�ArgumentParser�prog�add_argument�strrS�
parse_argsrRrOr�keytyperFrUr=rHr.r$rJrKrMrIrrL�	Exceptionrr)	rL�parserrr,�kr+Zlimr=�errrr_�s���
���
�
�
�
�����
�
�
�







&r_c
Cslt�}td�zt|j|j|jd�}Wn4tyZ}ztdt|��WYd}~n
d}~00|D]4}|�	t
�|jr�|�t
�q`|�t
|j
|j�q`t
d�t�zt|�}Wn4ty�}ztdt|��WYd}~n
d}~00d}|j�s|�d|j|jt
��sTd}nF|jD]>}z|�||j|jt
��s4d}Wnt
d|�Yn0�qt�|�rbd	nd
�dS)Nz;PHASE 1--Loading keys to check for internal timing problems)r1ZzonesrJz'ERROR: Unable to build key dictionary: z9PHASE 2--Scanning future key events for coverage failuresz#ERROR: Unable to build event list: FTz&ERROR: Coverage check failed for zone r
r)r_rrr1r=rJrarr^Zcheck_prepubr�sepZ
check_postpubrHrKrrZcoverager`rMrr
)rZkdrd�keyZelist�errorsr=rrr�main�s<&
&

�rh)N)Z
__future__rr0rrZ�globr%rIZcalendarZpprint�collectionsrr\Ziscrrrrrr	rrrrr.r;r_rhrrrr�<module>s& 	*
x
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg