509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
r­Çj"  ã               @   sF   d dl mZ ddlT ddlT ddlT ddlT d dlZG dd„ dƒZdS )é    )Údefaultdicté   )Ú*Nc               @   sl   e Zd Zedd„ ƒZedd„ ƒZeƒ ZdZdZ	e
j
ƒ dfdd„Zdd„ Zd	d
„ Zdd„ Ze
j
ƒ fdd„ZdS )Ú	keyseriesc               C   s   t tƒS )N)r   Úlist© r   r   ú/usr/lib/python3.6/keyseries.pyÚ<lambda>   s    zkeyseries.<lambda>c               C   s   t tƒS )N)r   r   r   r   r   r   r	      s    Nc             C   sä   || _ || _t|jƒ ƒ| _xÄ|jƒ D ]¸}| jj|ƒ x¦|| jƒ D ]–\}}xh|jƒ D ]\}|j	rˆ|j
ƒ op|j
ƒ |k s°| j| | j|ƒ qT|j
ƒ oš|j
ƒ |k sT| j| | j|ƒ qTW | j| | jƒ  | j| | jƒ  qBW q$W d S )N)Ú_kdictÚ_contextÚsetZmissingÚ_zonesÚzonesÚaddÚitemsÚvaluesÚsepÚdeleteÚ_KÚappendÚ_ZÚsort)ÚselfZkdictÚnowÚcontextÚzoneÚalgÚkeysÚkr   r   r   Ú__init__   s    zkeyseries.__init__c             c   sb   x\| j D ]R}xL| j| jgD ]<}||kr(qx,|| jƒ D ]\}}x|D ]
}|V  qDW q6W qW qW d S )N)r   r   r   r   )r   r   Ú
collectionr   r   Úkeyr   r   r   Ú__iter__.   s    
zkeyseries.__iter__c             C   s"   x| D ]}t dt|ƒ ƒ qW d S )Nz%s)ÚprintÚrepr)r   r   r   r   r   Údump7   s    
zkeyseries.dumpc             K   s€  |j ddƒ}|sd S |d }|jr>|j}|jp0d}|jp:d}	n|j}|jpLd}|jpVd}	|jƒ }
|j	ƒ }|
 sv|
|kr„|j
|ƒ |}
| s’||kr |j|ƒ |}|jƒ }d}|sÌ|jd|Ž |jd|Ž �nÎ| sà|| |k�r| �r(|| || | k�r(|j|| f|Ž |j|| |	 f|Ž nì|�s`|j|| | f|Ž |j|| |	 | f|Ž n´||k �rln¨|| |k�r¤|j|| f|Ž |j|| |	 f|Ž np|| || | k�rä|j|| f|Ž |j|| |	 f|Ž n0|j|| | f|Ž |j|| |	 | f|Ž n„|jƒ }| �s8||	 || k�rL|j||	 f|Ž nN|�sj|j||	 | f|Ž n0||| k �rzn |||	 k �rš|j||	 f|Ž |j|jk�r´|j|jƒ |}xî|dd … D ]Þ}|�s|j
d|Ž |jd|Ž |jd|Ž |jd|Ž |j|jk�rÆ|j|jƒ �qÆ|jƒ }|| }
|j|f|Ž |j
|
f|Ž |j|| f|Ž |j|| |	 f|Ž |j||	 f|Ž |j|jk�rž|j|jƒ |}�qÆW x–|�r>|jƒ �r>|jƒ ||j k �r>|j| jd f|Ž |j| jd	 | jd
 |f|Ž}|j|j	ƒ | f|Ž |j|jƒ |	 f|Ž |j|ƒ |}�qªW |jd|Ž |jd|Ž x"|D ]}|j| jd f|Ž �q^W d S )NÚforceFr   é   i€Q i,  r   Zsettime_pathÚkeygen_pathÚ	randomdevi �' i �' i �' i �' )N)N)N)N)N)N)N)N)Úgetr   Zksk_rollperiodZksk_prepublishZksk_postpublishZzsk_rollperiodZzsk_prepublishZzsk_postpublishZpublishZactivateZ
setpublishZsetactivateZinactiveZsetinactiveZ	setdeleter   ÚkeyttlZttlZsetttlZcoverageZcommitr   Zgenerate_successorr   )r   r   Úpolicyr   Úkwargsr&   r!   ZrpZprepubZpostpubÚpÚaÚiZfudgeÚdÚprevr   r   r   Ú	fixseries;   s¬    










zkeyseries.fixseriesc             K   sþ  |j d| jƒ}|j d| jj dd ƒƒ}|j ddƒ}�xÆ|D �]¼}g }|j|ƒ}	|pX|	jpXd}|	j}
tj|
ƒ}d|ks||d  ræt| j	| | ƒdkrÖtj
| jd	 | jd
 |||
|	jd|	jpºdf|Ž}| j	| | j|ƒ |j| j	| ƒ d|ksú|d  �rht| j| | ƒdk�rXtj
| jd	 | jd
 |||
|	jd|	j�p<df|Ž}| j| | j|ƒ |j| j| ƒ xŒ|D ]„}x||jƒ D ]p\}}||k�r’�q|y| j||	|f|Ž W n@ tk
�rè } z"td|tj|ƒt|ƒf ƒ‚W Y d d }~X nX �q|W �qnW q8W d S )Nr   ÚdirZ	keys_pathr&   FÚ.Zkskr   r(   r)   i  ZzskTz	%s/%s: %s)r*   r   r   r,   Z	directoryÚ	algorithmÚdnskeyÚalgnumÚlenr   ZgenerateZzsk_keysizer+   r   r   Zksk_keysizer   r3   Ú	ExceptionZalgstrÚstr)r   Zpoliciesr   r-   r   Zkeys_dirr&   r   Úcollectionsr,   r   r8   r   r    r6   r   Úer   r   r   Úenforce_policy±   sL    




zkeyseries.enforce_policy)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r
   r   Útimer   r"   r%   r3   r>   r   r   r   r   r      s   	vr   )r<   r   r7   ZkeydictZkeyeventr,   rB   r   r   r   r   r   Ú<module>   s   