name : gnutls.cpython-39.opt-1.pyc
a

�
�g�'�@sLddlZddlZddlmZmZddlmZddlmZGdd�de�Z	dS)�N)�CalledProcessError�call)�mkstemp�)�ConfigGeneratorc%@s|eZdZdZhd�Zddddddd�Zdddd	d
dddd
ddddd�
Zddddddddddd�
Zddd d!d"d#d$�Zd%d&d'�Z	d(gd)gd*gd+gd,gd-gd.gd/gd0gd1d2gd3gd4gd5d6gd7gd8gd9d:gd;gd<gd=gd>gd?gd@gdAgdBgdCgdDgdEgdFgdGgdHgdIgdJgdKgdLgdMgdNgdO�$Z
dPdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^�Zd_d`dadbdc�Zdddedfdgdhdidjdkdl�Z
edmdn��Zedodp��ZdS)q�GnuTLSGenerator�gnutls>ZsslZtlsr�AEAD�SHA1�MD5NZSHA512)r	z	HMAC-SHA1zHMAC-MD5z
HMAC-SHA2-256z
HMAC-SHA2-384z
HMAC-SHA2-512ZSHA224ZSHA256ZSHA384�SHA3-224�SHA3-256�SHA3-384�SHA3-512�	SHAKE-128�	SHAKE-256)
r	r
rzSHA2-224zSHA2-256zSHA2-384zSHA2-512rr
rrrrz
GROUP-X448zGROUP-X25519zGROUP-SECP256R1zGROUP-SECP384R1zGROUP-SECP521R1zGROUP-FFDHE6144zGROUP-FFDHE2048zGROUP-FFDHE3072zGROUP-FFDHE4096zGROUP-FFDHE8192)
�X448�X25519�	SECP256R1�	SECP384R1�	SECP521R1z
FFDHE-6144z
FFDHE-2048z
FFDHE-3072z
FFDHE-4096z
FFDHE-8192rr�	SECP224R1rrr)rrrrrrZEd448ZEd25519)�EDDSA-ED448�
EDDSA-ED25519�RSA-MD5�RSA-SHA1�DSA-SHA1�
ECDSA-SHA1z
RSA-SHA224z
DSA-SHA224zECDSA-SHA224z
RSA-SHA256z
DSA-SHA256zECDSA-SHA256zECDSA-SECP256R1-SHA256z
RSA-SHA384z
DSA-SHA384zECDSA-SHA384zECDSA-SECP384R1-SHA384z
RSA-SHA512z
DSA-SHA512zECDSA-SHA512zECDSA-SECP521R1-SHA512zRSA-PSS-SHA256zRSA-PSS-SHA384zRSA-PSS-SHA512zRSA-PSS-RSAE-SHA256zRSA-PSS-RSAE-SHA384zRSA-PSS-RSAE-SHA512�RSA-SHA3-224�DSA-SHA3-224�ECDSA-SHA3-224�RSA-SHA3-256�DSA-SHA3-256�ECDSA-SHA3-256�RSA-SHA3-384�DSA-SHA3-384�ECDSA-SHA3-384�RSA-SHA3-512�DSA-SHA3-512�ECDSA-SHA3-512zEdDSA-Ed448z
EdDSA-Ed25519)$rrrrzRSA-SHA2-224zDSA-SHA2-224zECDSA-SHA2-224zRSA-SHA2-256zDSA-SHA2-256zECDSA-SHA2-256zRSA-SHA2-384zDSA-SHA2-384zECDSA-SHA2-384zRSA-SHA2-512zDSA-SHA2-512zECDSA-SHA2-512zRSA-PSS-SHA2-256zRSA-PSS-SHA2-384zRSA-PSS-SHA2-512zRSA-PSS-RSAE-SHA2-256zRSA-PSS-RSAE-SHA2-384zRSA-PSS-RSAE-SHA2-512rrr r!r"r#r$r%r&r'r(r)rr��AES-256-GCM�AES-128-GCM�AES-256-CCM�AES-128-CCM�AES-256-CBC�AES-128-CBC�CAMELLIA-256-GCM�CAMELLIA-128-GCM�CAMELLIA-256-CBC�CAMELLIA-128-CBC�CHACHA20-POLY1305�3DES-CBCzARCFOUR-128)zAES-256-CTRzAES-128-CTRr+r,r-r.r/r0r1r2r3r4r5r6zRC4-128)z	ECDHE-RSAzECDHE-ECDSA)�RSA)�DHE-RSA)�DHE-DSS)ZECDHEr7r8r9�SSL3.0�TLS1.0�TLS1.1�TLS1.2�TLS1.3�DTLS0.9�DTLS1.0�DTLS1.2)r:r;r<r=r>r?r@rAc	s�|j}t�d���}|drj|dD]D}z,�j|rR|d7}|�j|7}|d7}Wq$tyfYq$0q$|dr�|dD]D}z,�j|r�|d7}|�j|7}|d7}Wqzty�Yqz0qz|dD]$}|�jvr�|d�j|�d�7}qȇfd	d
�|dD�}|D]"}|D]}|d|�d�7}�q�q|D]"}|D]}|d
|�d�7}�q8�q0|jd�rx|d7}|d7}|d7}|dD](}|�j	v�r�|d�j	|�d�7}�q�|dD](}|�j
v�r�|d�j
|�d�7}�q�|d�r:|dD]J}z.�j|�r|d7}|�j|7}|d7}Wnt�y4Yn0�q�|dD]4}|�jv�rB�j|D]}|d|�d�7}�q\�qB|dD](}|�j
v�r�|d�j
|�d�7}�q�t�dd�dk}|�s|jddk�r�|d7}n*|jddk�r�|d 7}n|jdd!k�r|jd"}	|jd#}
|	d$k�s,|
d$k�r6|d%7}n�|	d&k�sJ|
d&k�rT|d'7}nb|	d(k�sh|
d(k�rr|d)7}nD|	d*k�s�|
d*k�r�|d+7}n&|	d,k�s�|
d,k�r�|d-7}n|d.7}|d/7}|S)0Nz]
            [global]
            override-mode = allowlist

            [overrides]
        �hashzsecure-hash = �
Zmacztls-enabled-mac = �groupztls-enabled-group = cs g|]}|�jvr�j|�qS�)�sign_map)�.0�i��clsrE�</usr/share/crypto-policies/python/policygenerators/gnutls.py�
<listcomp>��z3GnuTLSGenerator.generate_config.<locals>.<listcomp>�signz
secure-sig = zsecure-sig-for-cert = Z
sha1_in_certszsecure-sig-for-cert = rsa-sha1
zsecure-sig-for-cert = dsa-sha1
z!secure-sig-for-cert = ecdsa-sha1
zenabled-curve = Zcipherztls-enabled-cipher = Zkey_exchangeztls-enabled-kx = Zprotocolzenabled-version = ZGNUTLS_NO_TLS_SESSION_HASH�0�1Z__emsZENFORCEztls-session-hash = require
ZRELAXztls-session-hash = request
ZDEFAULT�min_dh_size�min_rsa_sizeiz$min-verification-profile = very_weakizmin-verification-profile = lowiz!min-verification-profile = mediumizmin-verification-profile = highi z min-verification-profile = ultraz!min-verification-profile = futurez

[priorities]
SYSTEM=NONE
)Zenabled�textwrap�dedent�lstrip�hash_map�KeyError�mac_map�	group_mapZintegers�group_curve_map�sign_curve_map�
cipher_map�key_exchange_map�protocol_map�os�getenvZenums)rJZpolicy�p�srHZsigs�jZkxZno_tls_session_hashrQrRrErIrK�generate_config�s�




�








zGnuTLSGenerator.generate_configc	Cs(t�d�dkrdSt�dtj�s$dSt�\}}d}z�t�|d��}|�|�Wd�n1s`0Yz.|tjd<dtjd	<dtjd
<tddd�}Wnt	y�|�
d
�Yn0Wtjd=tjd	=tjd
=t�|�n$tjd=tjd	=tjd
=t�|�0|�r$|�
d�|�
d|���dSdS)NZ
OLD_GNUTLSrPTz/usr/bin/gnutls-cli��wZGNUTLS_SYSTEM_PRIORITY_FILE�3ZGNUTLS_DEBUG_LEVELZ&GNUTLS_SYSTEM_PRIORITY_FAIL_ON_INVALIDz!/usr/bin/gnutls-cli -l >/dev/null)�shellz%/usr/bin/gnutls-cli: Execution failedz,There is an error in gnutls generated policyzPolicy:
F)r_r`�access�X_OKr�fdopen�write�environrrZeprint�unlink)rJZconfig�fd�path�ret�frErErK�test_config
s>
(


�
�
zGnuTLSGenerator.test_config)�__name__�
__module__�__qualname__ZCONFIG_NAMEZSCOPESrXrVrYrZr[rFr\r]r^�classmethodrdrsrErErErKrs�����
��,���
ir)
r_rS�
subprocessrrZtempfilerZconfiggeneratorrrrErErErK�<module>s


© 2025 Cubjrnet7