a {)j"ã@sFddlmZddlTddlTddlTddlTddlZGdd„dƒZdS)é)Ú defaultdicté)Ú*Nc@sleZdZedd„ƒZedd„ƒZeƒZdZdZ e   ¡dfdd„Z dd„Z d d „Z d d „Ze   ¡fd d„ZdS)Ú keyseriescCsttƒS©N©rÚlist©r r ú1/usr/lib/python3.9/site-packages/isc/keyseries.pyÚózkeyseries.cCsttƒSrrr r r r r r NcCsØ||_||_t| ¡ƒ|_| ¡D]°}|j |¡|| ¡D]’\}}| ¡D]\}|j r‚|  ¡rl|  ¡|ksª|j ||  |¡qN|  ¡r–|  ¡|ksN|j ||  |¡qN|j || ¡|j || ¡q>q"dSr)Ú_kdictÚ_contextÚsetÚmissingÚ_zonesÚzonesÚaddÚitemsÚvaluesÚsepÚdeleteÚ_KÚappendÚ_ZÚsort)ÚselfZkdictÚnowÚcontextÚzoneÚalgÚkeysÚkr r r Ú__init__s   zkeyseries.__init__ccsR|jD]F}|j|jfD]4}||vr$q|| ¡D]\}}|D] }|Vq|j}|jp0d}|jp:d} n|j}|jpLd}|jpVd} | ¡} |  ¡} | rt| |kr‚|  |¡|} | rŽ| |krœ|  |¡|} |  ¡} d} |sÐ|j d i|¤Ž|jd i|¤Žnþ| râ| || kr@| s2| |||| kr2|j | |fi|¤Ž|j| || fi|¤ŽqÎ| sr|j ||| fi|¤Ž|j||| | fi|¤ŽnÌ| |kr~nÀ| || kr¾|j | |fi|¤Ž|j| || fi|¤Žn€| |||| kr|j | |fi|¤Ž|j| || fi|¤Žn8|j ||| fi|¤Ž|j||| | fi|¤ŽnŽ| ¡}|r`| | || krx|j| | fi|¤ŽnV|sš|j|| | fi|¤Žn4||| krªn$|| | krÎ|j| | fi|¤Ž|j|jkrè| |j¡|}|dd…D]}|sb|j d i|¤Ž|j d i|¤Ž|j di|¤Ž|jdi|¤Ž|j|jkrø| |j¡qø|  ¡} | |} |j | fi|¤Ž|j | fi|¤Ž|j | |fi|¤Ž|j| || fi|¤Ž|j| | fi|¤Ž|j|jkrö| |j¡|}qø|r¢|  ¡r¢|  ¡||jkr¢|j|jdfi|¤Ž|j|jd|jd |fi|¤Ž}|j |  ¡|fi|¤Ž|j|  ¡| fi|¤Ž| |¡|}qþ|j di|¤Ž|jdi|¤Ž|D]}|j|jdfi|¤ŽqÆdS)NÚforceFri'i,rZ settime_pathÚ keygen_pathÚ randomdev)N)N)N)N)N)N)N)N)ÚgetrZksk_rollperiodZksk_prepublishZksk_postpublishZzsk_rollperiodZzsk_prepublishZzsk_postpublishZpublishZactivateZ setpublishZ setactivateZinactiveZ setinactiveZ setdeleterÚkeyttlZttlZsetttlZcoverageZcommitrZgenerate_successorr)rr!ÚpolicyrÚkwargsr*r%ZrpZprepubZpostpubÚpÚaÚiZfudgeÚdÚprevr r r Ú fixseries;s´               ÿ þþ zkeyseries.fixseriesc Ksú| d|j¡}| d|j dd¡¡}| dd¡}|D]¾}g}| |¡} |pT| jpTd}| j} t | ¡} d|vsv|dsät|j || ƒdkrÔtj |jd |jd ||| | j d| j p´d fi|¤Ž} |j ||   | ¡|  |j |¡d |vsö|d sht|j|| ƒdkrXtj |jd |jd ||| | jd | j p8d fi|¤Ž} |j||   | ¡|  |j|¡|D]†} |  ¡D]v\}}|| krŽqxz|j|| |fi|¤ŽWnBtyê}z(td|t | ¡t|ƒfƒ‚WYd}~n d}~00qxqlq4dS)NrÚdirZ keys_pathr*FÚ.Zkskrr+r,iZzskTz %s/%s: %s)r-rrr/Z directoryÚ algorithmÚdnskeyÚalgnumÚlenrZgenerateZ zsk_keysizer.rrZ ksk_keysizerr6Ú ExceptionZalgstrÚstr)rZpoliciesrr0rZkeys_dirr*rÚ collectionsr/r r;r"r$r9r!Úer r r Úenforce_policy±sV     üû  üû ÿzkeyseries.enforce_policy)Ú__name__Ú __module__Ú __qualname__rrrrrr rÚtimer#r&r)r6rAr r r r rs   vr)r?rr:ZkeydictZkeyeventr/rErr r r r Ú s