VULN_CHECK_I913V6 jEddlmZmZmZddlZddlZddlZddlmZddl m Z ejdZ da dZdZdZd Zy) )print_functionabsolute_importunicode_literalsN)which)_dnfcvt.tdatjt dttS)Nrpmkeysz3Using rpmkeys executable at %s to verify signatures)_rpmkeys_binaryr_loggerdebugr6/usr/lib/python3.12/site-packages/dnf/rpm/miscutils.py_find_rpmkeys_binaryrs/ * aMN% ' rcNt|dks |ddk7s|dryd\}}}}|ddD]o}d|vry|jd rd }|jd rd }1|jd rd }E|jd rd|vrd }]|jd roy|ry|s|ry|ryy)Nrs-:)FFFFs: BADs: NOKEYTs : NOTTRUSTEDs : NOTFOUNDs: OKs ignature,)lenendswith)data trusted_sig missing_key not_trusted not_signedis r_process_rpm_outputr $s 4y1}Q5(DH8R5Kk: !BZ q= ZZ #K ZZ (K ZZ &J ZZ \Q%6KG$ [  rc6t}|tjj|stj t dyddd|dddd f}ttj}d |d <tj|||tjd | 5}|jd}dddj}t|tur t!d|dk\s|dkryt#j%d}|r|S|rdSdS#1swY`xYw)Nz4Cannot find rpmkeys executable to verify signatures.rr z --checksigz--rootz --verbosez#--define=_pkgverify_level signaturez--define=_pkgverify_flags 0x0-CLC_ALL/)args executableenvstdoutcwdstdinrz Popen set return code to non-int )rospathisfiler criticalrdictenviron subprocessPopenPIPE communicate returncodetypeintAssertionErrorr split) package installrootrpmkeys_binaryr&r(prr7rets r_verifyPackageUsingRpmkeysrACs)+NRWW^^N%CQRS |X{K 13R  D rzz CCM   %??    }}q! J Js"?@@Q*q. djj/ 0C  1!!%  s DDc2tj|tjtjztjz} t ||j j}tj||S#tj|wxYw)a Takes a transaction set and a package, check it's sigs, return 0 if they are all fine return 1 if the gpg key can't be found return 2 if the header is in someway damaged return 3 if the key is not trusted return 4 if the pkg is not gpg or pgp signed) r-openO_RDONLYO_NOCTTY O_CLOEXECrAtsrootDirclose)rGr<fdnovalues rcheckSigrLdsb 777BKK 3BLL@ AD*4?  L s  A??B) __future__rrrr-r3loggingshutilrdnf.i18nr getLoggerr r rr rArLrrrrRsI IH  '  E " >"B r