PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  ,wgc@sddlZddlZddlZddlZddlZddlZddlZerddlm Z m Z m Z m Z m Z mZmZmZmZddlmZmZmZmZmZmZndgZid#d 6Zd Zed ZedZed Zde fdYZ!ddZ"dZ#ddZ$dZ%dZ&dZ'dZ(dZ)dZ*ej+dZ,ej+dZ-dZ.dZ/ed Z0dd!Z2dd"Z3dS($iN( 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|jdS|tkrN|jdStdS(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|}|jSWdQXdS(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|dS(NR(R@t PAE_FIELDS(R"((s)/usr/libexec/kcare/python/kcsig_verify.pytpae_typeQscCs1|dtkr-tdt|dndS(NRsinvalid key type: (RAR!R((R((s)/usr/libexec/kcare/python/kcsig_verify.pyt check_keyUsccsX|r|VnFtjdtdd,}|jt||j|jVWdQXdS(Ntdirtprefixs kcsig-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 Cstdtdd}dd|d|dd|g}tj|d tjd tjd tj}|j|\}}|jd krtd t|dt|nWdQXdS(NRDREs kcsig-gpgtmp-Rs --homedirs --keyrings--verifyt-tstdintstdouttstderrisVerify error: s ( RQRHt subprocesstPopentPIPEt communicatet returncodet ExceptionR((tkeyfiletdatafiletsigdatattmp_dirtcmdR<RTRU((s)/usr/libexec/kcare/python/kcsig_verify.pytrun_gpg_verifyns *c Cst|tjdtddq}|jtjt|d|jt ||/}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 Csd}i}x|jD]s\}}||krAd||   )  %cCs2t|}t|}t|||d|dS(NRx(R8R|(tsigfileR]trootfileRxR^Rw((s)/usr/libexec/kcare/python/kcsig_verify.pytverifys  (stypeskindRsserialskey(4R,RbRFRVR6RNt contextlibtFalsettypingRRRRRRRRRttypesR R R R R RRsRARHRRRR%R[RRR(R3R5R8R>R@RBRCtcontextmanagerRLRQRaRfRotNoneR|R(((s)/usr/libexec/kcare/python/kcsig_verify.pyts@       @1              +