관리-도구
편집 파일: miscutils.cpython-39.pyc
a �����!cB����������������������@���sv���d�dl�mZmZmZ�d�dlZd�dlZd�dlZd�dlmZ�d�dl m Z �e�d�Zda dd��Zdd ��Zd d��Zdd ��ZdS�)�����)�print_function�absolute_import�unicode_literalsN)�which)�_Zdnfc�������������������C���s$���t�d�u�r td�a�t�td�t���t�S�)N�rpmkeysz3Using rpmkeys executable at %s to verify signatures)�_rpmkeys_binaryr����_logger�debugr�����r���r����5/usr/lib/python3.9/site-packages/dnf/rpm/miscutils.py�_find_rpmkeys_binary���s���� �r ���c�����������������C���s����t�|��dk�s |�d�dks |�d�r$dS�d\}}}}|�dd��D�]R}d|v�rN�dS�|�d �r^d }q<|�d�rnd }q<|�d�r~d }q<|�d �s<�dS�q<|r�dS�|r�dS�|r�dS�dS�)N����r���s���-:�������)FFFF����s���: BADs���: NOKEYTs���: NOTTRUSTEDs ���: NOTFOUNDs���: OK����)�len�endswith)�dataZseen_sigZmissing_keyZnot_trustedZ not_signed�ir���r���r����_process_rpm_output$���s*���� r���c����������� ������C���s����t���}|d�u�stj�|�s,t�td���dS�ddd|dddd f}ttj�}d |d<�t j |||t jd|�d ��}|���d�}W�d�����n1�s�0����Y��|j }t|�tur�td��|dks�|dk�r�dS�t|�d��}|r�|S�|r�dS�dS�)Nz4Cannot find rpmkeys executable to verify signatures.r���r���z --checksigz--rootz --verbosez#--define=_pkgverify_level signaturez--define=_pkgverify_flags 0x0�-�C�LC_ALL�/)�args� executable�env�stdout�cwd�stdinr���z Popen set return code to non-int���� )r ����os�path�isfiler ���Zcriticalr����dict�environ� subprocess�Popen�PIPEZcommunicate� returncode�type�int�AssertionErrorr����split) �packageZinstallrootZrpmkeys_binaryr���r����pr���r+����retr���r���r����_verifyPackageUsingRpmkeys?���s:���� � �*r3���c�������������� ���C���sH���t��|t�jt�jB�t�jB��}zt||�jj�}W�t��|��nt��|��0�|S�)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#����open�O_RDONLY�O_NOCTTY� O_CLOEXECr3����tsZrootDir�close)r8���r0���Zfdno�valuer���r���r����checkSig`���s ����r;���)Z __future__r���r���r���r#���r(���Zlogging�shutilr���Zdnf.i18nr���Z getLoggerr ���r���r ���r���r3���r;���r���r���r���r����<module>���s��� !