Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3
;j @ s d dl Z d dlZd dlZd dlZddlmZmZmZmZm Z m
Z
mZ ejej
gZdZdZdZddd Zd
d Zdd
Zejejejdd ddddZG dd deZejdd Zdd ZdS ) N )authconfig constantserrors
http_utilsselinuxutilsz/usr/bin/gpgz/var/lib/kcare/gpgzrelease.content.jsonFc C s t j}|rtj}tjr&td d d }nt}xT|D ]L}y|| | }P W q0 tjk
rz } z||d krj|W Y d d }~X q0X q0W || }t j
|| |S )Nr r
)r urlopenr urlopen_authr FORCE_JSON_SIG_V3SIG_VERIFY_ORDERr NotFoundr save_to_file) urldstdo_authZ
urlopen_localZsig_extsZsig_ext signatureZnfZsig_dst r +/usr/libexec/kcare/python/kcarectl/fetch.pyfetch_signature s
r c C s$ t jjts tjdjtddd S )Nz$No {0} present. Please install gnupgzgnupg not found)status)ospathisfileGPG_BINr
KcareErrorformatr r r r
check_gpg_bin) s r c C s t |jtjrptjjtd}ytj || | W q tj
k
rl } ztjdj
| t|W Y dd}~X qX nxt|d}|j }W dQ R X tjjtd}ytj|| | W n8 tk
r } ztjdj
| t|W Y dd}~X nX dS )a8
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
zroot-keys.jsonzBad Signature: {0}: {1}Nrbz
kcare_pub.key)r endswithr SIG_JSONr r joinGPG_KEY_DIRkcsig_verifyZverifyErrorr BadSignatureExceptionr stropenreadZrun_gpg_verify Exception) file_pathr Z root_keysefZsigdataZkeyringr r r check_gpg_signature. s
*r/ )countdelayc C s^ t j| }tj|}tj|| |r2|j| | n|rNt| |dd}t|| t j
|| |S )NT)r )r r r selinux_safe_tmpnamer r checkr r/ r rename)r r Zcheck_signaturehash_checkerresponsetmpr r r r fetch_urlM s
r9 c @ s e Zd Zdd Zdd ZdS )HashCheckerc C s6 || _ tj|jdd | _tjtj|d | _d S )N/files) content_filer get_patch_server_urlrstrip
url_prefixjsonloads read_filehashes)selfbaseurlr= r r r __init__^ s zHashChecker.__init__c C sv |t | jd }|| jkr4tjdj|| jddtjt j
|j }| j| d }||krrtjdj|||d S )Nz3Invalid checksum: {0} not found in content file {1}zinvalid checksum)r sha256z