????

Your IP : 18.226.34.223


Current Path : /lib/python3.9/site-packages/dnf/__pycache__/
Upload File :
Current File : //lib/python3.9/site-packages/dnf/__pycache__/crypto.cpython-39.pyc

a

�!c��@s:ddlmZddlmZddlmZddlmZddlZddlZddl	Zddl
ZddlZddlZddl
Z
ddlZzddlmZddlmZWn:ey�ddlZGdd	�d	e�ZGd
d�de�ZYn0dZe�d
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zejdd��Zdd�Z d"dd�Z!Gd d!�d!e�Z"dS)#�)�print_function)�absolute_import)�unicode_literals)�_N)�Context)�Datac@sVeZdZdd�Zdd�Zdd�Zedd��Zejd	d��Zd
d�Z	dd
�Z
dd�ZdS)rcCst��|jd<dS)N�ctx)�gpgmer�__dict__��self�r
�./usr/lib/python3.9/site-packages/dnf/crypto.py�__init__*szContext.__init__cCs|S�Nr
rr
r
r�	__enter__-szContext.__enter__cCsdSrr
�r�type�value�tbr
r
r�__exit__0szContext.__exit__cCs|jjSr�r�armorrr
r
rr3sz
Context.armorcCs||j_dSrr)rrr
r
rr7scCs$t|t�rt�|�}|j�|�dSr)�
isinstanceZ
basestring�io�BytesIOr�import_)r�key_for
r
r�	op_import;s

zContext.op_importcCs|j�||�dSr)rZexport)r�pattern�modeZkeydatar
r
r�	op_export@szContext.op_exportcCst|j|�Sr)�getattrr�r�namer
r
r�__getattr__CszContext.__getattr__N)�__name__�
__module__�__qualname__rrr�propertyr�setterrr!r%r
r
r
rr)s

rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)rcCst��|jd<dS)N�buf)rrr
rr
r
rrHsz
Data.__init__cCs|Srr
rr
r
rrKszData.__enter__cCsdSrr
rr
r
rrNsz
Data.__exit__cCs
|j��Sr)r+�getvaluerr
r
r�readQsz	Data.readcCst|j|�Sr)r"r+r#r
r
rr%TszData.__getattr__N)r&r'r(rrrr-r%r
r
r
rrGs
rZ	GNUPGHOME�dnfcCstj�dd�|jD��S)Ncss|]}|jr|VqdSr)Zcan_sign)�.0�subkeyr
r
r�	<genexpr>]�z*_extract_signing_subkey.<locals>.<genexpr>)r.�util�firstZsubkeys)�keyr
r
r�_extract_signing_subkey\sr6cs(�fdd�tdt��d�D�}d�|�S)Nc3s|]}�||d�VqdS)�Nr
)r/�i��fpr_hexr
rr1ar2z)_printable_fingerprint.<locals>.<genexpr>rr7� )�range�len�join)r:�segmentsr
r9r�_printable_fingerprint`sr@cCs�|j}t|�}|jD]t}t||�D]d}|j}||vrJt�td�|j|�q"|j	�
|�sXq"tjj
j|j|j|dd�t�td�|j|�q"qdS)Nzrepo %s: 0x%s already importedF)�gpgdirZmake_ro_copyzrepo %s: imported key 0x%s.)Z_pubring_dir�keyids_from_pubringZgpgkey�retrieve�id_�logger�debugr�idZ_key_importZ_confirmr.ZyumZmiscZimport_key_to_pubring�raw_key�short_id)�reporAZ
known_keys�keyurl�keyinfo�keyidr
r
r�import_repo_keyses

�rNc	Cs�tj�|�sgSt|��vt��P}g}|��D] }t|�}|dur.|�|j�q.|Wd�Wd�S1sv0YWd�n1s�0YdSr)	�os�path�exists�pubring_dirr�keylistr6�appendrM)rArZkeyids�kr0r
r
rrBvsrBcCs8td�|j|jt|j�|j�dd�f}t�d|�dS)NzLImporting GPG key 0x%s:
 Userid     : "%s"
 Fingerprint: %s
 From       : %szfile://�z%s)	rrI�useridr@�fingerprint�url�replacerE�critical)rL�msgr
r
r�log_key_import�s��r]cCs8t|�|tjjjkr&t�td��nt�td��dS)Nz0Verified using DNS record with DNSSEC signature.zNOT verified using DNS record.)r]r.ZdnssecZValidityZVALIDrEr[r)rLZ
dns_resultr
r
r�log_dns_key_import�sr^c	csbtj�td�}|tjt<z&dVW|dur4tjt=q^|tjt<n|durRtjt=n
|tjt<0dSr)rO�environ�get�GPG_HOME_ENV)rRZorigr
r
rrR�s

�
rRcCst��}g}t|���t���}|�|�|��D]&}t|�}|durFq0|�t||��q0d|_	|D]R}t
��8}|�|jd|�|�
dtj�|��|_Wd�qb1s�0YqbWd�n1s�0YWd�n1s�0Ytj�|�|S)NTr)�tempfileZmkdtemprRrrrSr6rT�Keyrrr!rD�seekrO�SEEK_SETr-rHr.r3Zrm_rf)rZpb_dir�keyinfosrr5r0�infoZsinkr
r
r�rawkey2infos�s"
frhcCsj|�d�rt�td�|j|�tjj||d��}t|�}Wd�n1sL0Y|D]
}||_	qZ|S)Nzhttp:z.retrieving repo key for %s unencrypted from %s)rJ)
�
startswithrEZwarningrrGr.r3Z_urlopenrhrY)rKrJZhandlerfrLr
r
rrC�s
&rCc@s,eZdZdd�Zedd��Zedd��ZdS)rccCs6|j|_|j|_d|_|j|_d|_|jdj|_	dS)Nr)
rMrDZfprrXrHZ	timestamprYZuids�uidrW)rr5r0r
r
rr�szKey.__init__cCs&tjjrdnd}|jdd��d|�S)N�0�0i�����)r.ZpycompZPY3rD�rjust)rZrjr
r
rrI�szKey.short_idcCs
|j��Sr)rI�lowerrr
r
r�rpm_id�sz
Key.rpm_idN)r&r'r(rr)rIrpr
r
r
rrc�s

rc)N)#Z
__future__rrrZdnf.i18nr�
contextlibZ
dnf.pycompr.Zdnf.utilZdnf.yum.miscrZloggingrOrbZgpgrr�ImportErrorr	�objectraZ	getLoggerrEr6r@rNrBr]r^�contextmanagerrRrhrCrcr
r
r
r�<module>s>