PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /usr/libexec/kcare/python/__pycache__/
Server: Linux server1.ngambekcore.com 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 04:00:07 EDT 2025 x86_64
IP: 159.198.77.92
Choose File :

Url:
Dir : //usr/libexec/kcare/python/__pycache__/kcsig_verify.cpython-36.pyc

3


�	i\�@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_write3s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�paeDs

r3cst�fdd�|D��S)Ncsg|]}�|�qSrr)�.0r()rrr�
<listcomp>Oszpae_fields.<locals>.<listcomp>)r3)r�fieldsr)rr�
pae_fieldsMsr7cCst|t|d�S)Nr)r7�
PAE_FIELDS)rrrr�pae_typeRsr9cCs$|dtkr tdt|d���dS)Nrzinvalid key type: )r8rr)rrrr�	check_keyVsr:c
csH|r|Vn8tjtdd��$}|jt|��|j�|jVWdQRXdS)Nzkcsig-data-)�dir�prefix)�tempfile�NamedTemporaryFile�TMPDIRr!r�flush�name)r�data_is_filer(rrr�
temp_datafile[srCccs*tj||d�}z
|VWdtj|�XdS)N)r<r;)r=�mkdtemp�shutil�rmtree)r<r;Ztemp_dirrrr�temp_directoryfs
rGcCs|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: �
)	rGr?�
subprocess�Popen�PIPE�communicate�
returncode�	Exceptionr)�keyfile�datafile�sigdataZtmp_dir�cmdr2rJrKrrr�run_gpg_verifyos
rWcCsxt|�tjtdd��X}|jtjt|d���|j�t	||��"}tjt|��}t
|j||�WdQRXWdQRXdS)Nz
kcsig-key-)r;r<r)r:r=r>r?r!�base64�	b64decoderr@rCrWrA)�	signaturerrrB�key_filerTrUrrr�
verify_keyys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\rRr)	�
signatures�keysrrB�count�errors�keyid�sig�errr�verify_count�srfcCs�|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)rrBr]z!Error validating file signature: )
�get�AVAILABLE_KINDSr^r:�formatrRrrfr9r\r
r,�dumps)rUrT�	root_keys�kindsrgrhrbZapplicable_keysrcrreZ
verified_keysraZroot_errorsrrr�_verify�s>

rocCs$t|�}t|�}t||||d�dS)N)rn)r.ro)ZsigfilerTZrootfilernrUrmrrr�verify�srp)rrrrr)r)r)F)N)N)!rX�
contextlibr,r"rErMr=rjr8r?rrrrrRr
rrr)r+r.r3r7r9r:�contextmanagerrCrGrWr\rfrorprrrr�<module>s:

		


+