??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
ó òõ)gc@sMddlZddlZddlZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z ddl Z e j e j gZd Zd Zd Zed „Zd„Zd„Zeje je jƒddddƒedd„ƒZdefd„ƒYZejd„ƒZd„ZdS(iÿÿÿÿNi(tutils(tauth(tselinux(t http_utils(tconfig(terrors(t constantss /usr/bin/gpgs/var/lib/kcare/gpgsrelease.content.jsonc Cs¶tj}|rtj}ntjr:tddd…}nt}xU|D]M}y|||ƒ}PWqGtjk r“}||dkr”|‚q”qGXqGW||}t j ||ƒ|S(Niÿÿÿÿ( RturlopenRt urlopen_authRtFORCE_JSON_SIG_V3tSIG_VERIFY_ORDERRtNotFoundRt save_to_file( turltdsttdo_autht urlopen_localtsig_extstsig_extt signaturetnftsig_dst((s+/usr/libexec/kcare/python/kcarectl/fetch.pytfetch_signatures      cCs1tjjtƒs-tjdjtƒƒ‚ndS(Ns$No {0} present. Please install gnupg(tostpathtisfiletGPG_BINRt KcareErrortformat(((s+/usr/libexec/kcare/python/kcarectl/fetch.pyt check_gpg_bin0scCs tƒ|jtjƒr‚tjjtdƒ}ytj |||ƒWq tj k r~}t j dj |t|ƒƒƒ‚q Xn‡t|dƒ}|jƒ}WdQXtjjtdƒ}ytj|||ƒWn4tk r}t j dj |t|ƒƒƒ‚nXdS(s8 Check a file signature using the gpg tool. If signature is wrong BadSignatureException will be raised. :param file_path: path to file which signature will be checked :param signature: a file with the signature :return: True in case of valid signature :raises: BadSignatureException sroot-keys.jsonsBad Signature: {0}: {1}trbNs kcare_pub.key(RtendswithRtSIG_JSONRRtjoint GPG_KEY_DIRt kcsig_verifytverifytErrorRtBadSignatureExceptionRtstrtopentreadtrun_gpg_verifyt Exception(t file_pathRt root_keystetftsigdatatkeyring((s+/usr/libexec/kcare/python/kcarectl/fetch.pytcheck_gpg_signature5s (tcountitdelayicCs†tj|ƒ}tj|ƒ}tj||ƒ|rG|j||ƒn+|rrt||dtƒ}t ||ƒnt j ||ƒ|S(NR( RRRtselinux_safe_tmpnameRR tcheckRtTrueR2Rtrename(R Rtcheck_signaturet hash_checkertresponsettmpR((s+/usr/libexec/kcare/python/kcarectl/fetch.pyt fetch_urlTst HashCheckercBseZd„Zd„ZRS(cCsK||_tj|ƒjdƒd|_tjtj|ƒƒd|_dS(Nt/tfiles( t content_fileRtget_patch_server_urltrstript url_prefixtjsontloadst read_filethashes(tselftbaseurlRA((s+/usr/libexec/kcare/python/kcarectl/fetch.pyt__init__es cCs£|t|jƒ}||jkrCtjdj||jƒƒ‚ntjt j |ƒƒj ƒ}|j|d}||krŸtj dj|||ƒƒ‚ndS(Ns3Invalid checksum: {0} not found in content file {1}tsha256s<Invalid checksum: {0} has invalid checksum {1}, expected {2}( tlenRDRHRRRRAthashlibRLRt read_file_bint hexdigestR&(RIR tfnametcfnamethsht expected_hsh((s+/usr/libexec/kcare/python/kcarectl/fetch.pyR6js! (t__name__t __module__RKR6(((s+/usr/libexec/kcare/python/kcarectl/fetch.pyR>ds cCsŒtjs dS|jsdS|jtƒ}tjj|ƒs|y&t t j |jtƒ|tj ƒWq|t jk rxdSXnt|j|ƒS(N(RtUSE_CONTENT_FILE_V3tNoneRJt cache_patht CONTENT_FILERRtexistsR=RRBt USE_SIGNATURERR R>(tlevelR((s+/usr/libexec/kcare/python/kcarectl/fetch.pytget_hash_checkerxs  &cs‡fd†}|S(s=Enrish request with a cache key, and save it if responce had.cs›tjƒ}|dk rEd|kr1i|dtcachedR^Rl(((s+/usr/libexec/kcare/python/kcarectl/fetch.pyts,       $