403 Forbidden


Disable Functions:
Path : /usr/libexec/kcare/python/
File Upload :
Command :
Current File : //usr/libexec/kcare/python/kcsig_verify.pyc

�
o��fc@s�ddlZddlZddlZddlZddlZddlZddlZer�ddlm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZmZmZmZmZmZndgZid#d6ZdZed
�Zed�Zed
�Zde fd��YZ!dd�Z"d�Z#dd�Z$d�Z%d�Z&d�Z'd�Z(d�Z)d�Z*ej+d��Z,ej+d��Z-d�Z.d�Z/ed �Z0dd!�Z2dd"�Z3dS($i����N(	tUniontListtMappingtAnytSequencetOptionaltTupletDicttIteratori(t
ReleaseKeytAnyKeytRootKeytanystrt	SignaturetRootKeystrsa4096ttypetkindtroletserialtkeytgpgs/dev/shmtutErrorcBseZRS((t__name__t
__module__(((s)/usr/libexec/kcare/python/kcsig_verify.pyRstlatin1cCskt|�}|tkr|S|tkr5|j|�S|tkrQtt|��Stdt|���dS(NsUnsupported pae type (Rtbtypetutypetencodetinttto_byteststrt
ValueError(tdatatencodingtdtype((s)/usr/libexec/kcare/python/kcsig_verify.pyRs
cCsXt|�}|tkr|S|tkr5|jd�S|tkrN|jd�St�dS(Nsutf-8(RtntypeRtdecodeRRtNotImplementedError(R"R$((s)/usr/libexec/kcare/python/kcsig_verify.pytnstr's

twcCsC|d}t||��}|j|�WdQXtj||�dS(Ns.tmp(topentwritetostrename(tfnametcontenttmodet	tmp_fnametf((s)/usr/libexec/kcare/python/kcsig_verify.pytatomic_write2s
cCs#t|��}|j�SWdQXdS(N(R*tread(R.R2((s)/usr/libexec/kcare/python/kcsig_verify.pyt	read_file:scCstjt|��S(N(tjsontloadsR5(R.((s)/usr/libexec/kcare/python/kcsig_verify.pyt	read_json?scGsKdt|�}x4|D],}t|�}|dt|�|f7}qW|S(Ns%ds%d%s(tlenR(tpartstresulttptbp((s)/usr/libexec/kcare/python/kcsig_verify.pytpaeCs

cCs!tg|D]}||^q
�S(N(R>(R"tfieldsR2((s)/usr/libexec/kcare/python/kcsig_verify.pyt
pae_fieldsLscCst|t|d�S(NR(R@t
PAE_FIELDS(R"((s)/usr/libexec/kcare/python/kcsig_verify.pytpae_typeQscCs1|dtkr-tdt|d���ndS(NRsinvalid key type: (RAR!R((R((s)/usr/libexec/kcare/python/kcsig_verify.pyt	check_keyUsccsX|r|VnFtjdtdd��,}|jt|��|j�|jVWdQXdS(Ntdirtprefixskcsig-data-(ttempfiletNamedTemporaryFiletTMPDIRR+Rtflushtname(R"tdata_is_fileR2((s)/usr/libexec/kcare/python/kcsig_verify.pyt
temp_datafileZs
ccs6tjd|d|�}z	|VWdtj|�XdS(NRERD(RFtmkdtemptshutiltrmtree(RERDttemp_dir((s)/usr/libexec/kcare/python/kcsig_verify.pyttemp_directoryes	cCs�tdtdd���}dd|d|dd|g}tj|d	tjd
tjdtj�}|j|�\}}|jdkr�td
t|�dt|���nWdQXdS(NRDREs
kcsig-gpgtmp-Rs	--homedirs	--keyrings--verifyt-tstdintstdouttstderrisVerify error: s
(	RQRHt
subprocesstPopentPIPEtcommunicatet
returncodet	ExceptionR((tkeyfiletdatafiletsigdatattmp_dirtcmdR<RTRU((s)/usr/libexec/kcare/python/kcsig_verify.pytrun_gpg_verifyns*cCs�t|�tjdtdd��q}|jtjt|d���|j�t	||��/}tjt|��}t
|j||�WdQXWdQXdS(NRDREs
kcsig-key-R(RCRFRGRHR+tbase64t	b64decodeRRIRLRaRJ(t	signatureRR"RKtkey_fileR]R^((s)/usr/libexec/kcare/python/kcsig_verify.pyt
verify_keyxs
 
c	Cs�d}i}x�|j�D]s\}}||krAd||<qnyt|||||�Wn#tk
r�}t|�||<qX|d7}qW||fS(Nisno corresponding root keyi(titemsRfR[R (	t
signaturestkeysR"RKtcountterrorstkeyidtsigte((s)/usr/libexec/kcare/python/kcsig_verify.pytverify_count�s
c	Cs|jdd�}|jdd�}i}|p3t}i}x�|dj�D]�\}}	yrt|	�|	d|kr�dj|	d|�||<n7|	d|kr�d	j|	d|�||<n
|	||<WqMtk
r�}
t|
�||<qMqMXqMWi}xf|j�D]X\}}	t|	d
|ddt|	��\}}
||krY|
||<q|	||<qWd}xo|j�D]a\}}	y%t	|d
||	d|d
t
�Wn#tk
r�}
t|
�||<qzX|d7}qzW|stdtj
|���ndS(Nt	thresholdi't
min_seriali��RiRs&invalid kind {0}, accepted list is {1}Rs"invalid serial {0}, current is {1}RhR"iRKis!Error validating file signature: (tgettAVAILABLE_KINDSRgRCtformatR[R RoRBRftTrueRR6tdumps(R^R]t	root_keystkindsRpRqRktapplicable_keysRlRRnt
verified_keysRjtroot_errors((s)/usr/libexec/kcare/python/kcsig_verify.pyt_verify�s>
)
%cCs2t|�}t|�}t|||d|�dS(NRx(R8R|(tsigfileR]trootfileRxR^Rw((s)/usr/libexec/kcare/python/kcsig_verify.pytverify�s(stypeskindRsserialskey(4R,RbRFRVR6RNt
contextlibtFalsettypingRRRRRRRRRttypesR	R
RRR
RRsRARHRRRR%R[RRR(R3R5R8R>R@RBRCtcontextmanagerRLRQRaRfRotNoneR|R(((s)/usr/libexec/kcare/python/kcsig_verify.pyt<module>s@@1	
										
	+

404 Not Found
[ LogOut ]