JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/dnf/__pycache__/crypto.cpython-39.opt-1.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>




Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg