Sindbad~EG File Manager

Current Path : /proc/2191876/root/usr/libexec/kcare/python/__pycache__/
Upload File :
Current File : //proc/2191876/root/usr/libexec/kcare/python/__pycache__/kcsig_verify.cpython-36.pyc

3

��"h[�@sddlZddlZddlZddlZddlZddlZddlZdgZdd1iZd	Z	e
d
�Ze
d�Ze
d�Z
Gdd
�d
e�Zd2dd�Zdd�Zd3dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zejd"d#��Zejd$d%��Zd&d'�Zd(d)�Zd4d+d,�Zd5d-d.�Zd6d/d0�Z dS)7�NZrsa4096�gpg�type�kind�role�serial�keyz/dev/shm��c@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�)/usr/libexec/kcare/python/kcsig_verify.pyr
sr
�latin1cCsNt|�}|tkr|S|tkr&|j|�S|tkr:tt|��Stdt|���dS)NzUnsupported pae type )r�btype�utype�encode�int�to_bytes�str�
ValueError)�data�encoding�dtyperrrrs
rcCs@t|�}|tkr|S|tkr&|jd�S|tkr8|jd�St�dS)Nzutf-8)r�ntyper�decoderr�NotImplementedError)rrrrr�nstr's

r�wc
Cs8|d}t||��}|j|�WdQRXtj||�dS)Nz.tmp)�open�write�os�rename)�fname�content�mode�	tmp_fname�frrr�atomic_write2sr)c	Cst|��
}|j�SQRXdS)N)r �read)r$r(rrr�	read_file:s
r+cCstjt|��S)N)�json�loadsr+)r$rrr�	read_json?sr.cGs:dt|�}x(|D] }t|�}|dt|�|f7}qW|S)Ns%ds%d%s)�lenr)�parts�result�pZbprrr�paeCs

r3cst�fdd�|D��S)Ncsg|]}�|�qSrr)�.0r()rrr�
<listcomp>Nszpae_fields.<locals>.<listcomp>)r3)rZfieldsr)rr�
pae_fieldsLsr6cCst|t|d�S)Nr)r6�
PAE_FIELDS)rrrr�pae_typeQsr8cCs$|dtkr tdt|d���dS)Nrzinvalid key type: )r7rr)rrrr�	check_keyUsr9c
csH|r|Vn8tjtdd��$}|jt|��|j�|jVWdQRXdS)Nzkcsig-data-)�dir�prefix)�tempfile�NamedTemporaryFile�TMPDIRr!r�flush�name)r�data_is_filer(rrr�
temp_datafileZsrBccs*tj||d�}z
|VWdtj|�XdS)N)r;r:)r<�mkdtemp�shutil�rmtree)r;r:Ztemp_dirrrr�temp_directoryes
rFcCs|ttdd��f}dd|d|dd|g}tj|tjtjtjd�}|j|�\}}|jd	krntd
t|�dt|���WdQRXdS)Nz
kcsig-gpgtmp-)r:r;rz	--homedirz	--keyringz--verify�-)�stdin�stdout�stderrrzVerify error: �
)	rFr>�
subprocess�Popen�PIPE�communicate�
returncode�	Exceptionr)�keyfile�datafile�sigdataZtmp_dir�cmdr2rIrJrrr�run_gpg_verifyns
rVcCsxt|�tjtdd��X}|jtjt|d���|j�t	||��"}tjt|��}t
|j||�WdQRXWdQRXdS)Nz
kcsig-key-)r:r;r)r9r<r=r>r!�base64�	b64decoderr?rBrVr@)�	signaturerrrA�key_filerSrTrrr�
verify_keyxsr[Fc	Cs�d}i}xt|j�D]h\}}||kr,d||<qyt|||||�Wn.tk
rp}zt|�||<WYdd}~XqX|d7}qW||fS)Nrzno corresponding root key�)�itemsr[rQr)	�
signatures�keysrrA�count�errors�keyid�sig�errr�verify_count�srecCs�|jdd�}|jdd�}i}|p"t}i}x�|dj�D]�\}}	yXt|	�|	d|krjdj|	d|�||<n*|	d|kr�d	j|	d|�||<n|	||<Wq6tk
r�}
zt|
�||<w6WYdd}
~
Xq6Xq6Wi}xN|j�D]B\}}	t|	d
|dt|	�d�\}}
||k�r|
||<q�|	||<q�Wd}xl|j�D]`\}}	yt	|d
||	|d
d�Wn0tk
�r�}
zt|
�||<WYdd}
~
Xn
X|d7}�q.W|�s�t
dtj|���dS)N�	thresholdi'�
min_seriali��r_rz&invalid kind {0}, accepted list is {1}rz"invalid serial {0}, current is {1}r^)rrT)rrAr\z!Error validating file signature: )
�get�AVAILABLE_KINDSr]r9�formatrQrrer8r[r
r,�dumps)rTrS�	root_keys�kindsrfrgraZapplicable_keysrbrrdZ
verified_keysr`Zroot_errorsrrr�_verify�s>

rncCs$t|�}t|�}t||||d�dS)N)rm)r.rn)ZsigfilerSZrootfilermrTrlrrr�verify�sro)rrrrr)r)r)F)N)N)!r"rWr<rLr,rD�
contextlibrir7r>rrrrrQr
rrr)r+r.r3r6r8r9�contextmanagerrBrFrVr[rernrorrrr�<module>s:

		


+

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists