name : openssl.cpython-39.pyc
a

�
�gN*�@sXddlmZmZddlmZdZdZGdd�de�ZGdd	�d	e�ZGd
d�de�Z	dS)
�)�CalledProcessError�check_output�)�ConfigGeneratorz^
[openssl_init]
alg_section = evp_properties

[evp_properties]
rh-allow-sha1-signatures = yes
z2
[fips_sect]
tls1-prf-ems-check = {}
activate = 1
c@s>eZdZdZhd�Zddddddddd	d
ddddd
dd�Zhd�ddhddhd�Zdddddddddd�	Zddddd d!d"d#d$d%d&d'�Zd(d)d*�Z	dhd+hd,d-hd.�dhd/hd,d-hd.�d0hd/hd,d-hd.�dhd/hd,d-hd.�d1hd/hd/hd,d-hd2�d1hd+hd+hd,d-hd2�d3�Z
ed4d5��Zed6d7��Z
ed8d9��Zed:d;��Zd<S)=�OpenSSLGenerator�openssl�rZsslZtls�z-AES256z-AES128z-SHA256z	-CHACHA20z-SEEDz!IDEAz!DESz-3DESz!RC4z!RC2z
!eNULL:!aNULL)zAES-256-CTRzAES-128-CTR�AES-256-GCM�AES-128-GCM�AES-256-CBC�AES-128-CBC�CHACHA20-POLY1305�SEED-CBC�IDEA-CBC�DES-CBCzRC4-40z	DES40-CBC�3DES-CBCzRC4-128�RC2-CBC�NULL>	zCAMELLIA-128-CBCrzCAMELLIA-256-CBCrrrrrr
zAES-128-CCMzAES-256-CCMrr
)z-CBCz-AESCCMz-AESGCMZkRSAZkEECDHZkPSKZkDHEPSKZkEDHZ	kECDHEPSKZkRSAPSKZkGOST)	�RSA�ECDHE�PSK�DHE-PSK�DHE-RSA�DHE-DSS�	ECDHE-PSK�RSA-PSKz
VKO-GOST-2012z-kRSAz-kEECDHz-aRSAz-aDSSz-kPSKz-kDHEPSKz
-kECDHEPSKz-kRSAPSK)ZANONZDHZECDHrrrrrrrrz!MD5z-SHA1)zHMAC-MD5z	HMAC-SHA1zSHA2-384�TLS1.3zDTLS1.3)�cipher�hash�protocolzSHA2-256rr)rr�macr )ZTLS_AES_256_GCM_SHA384ZTLS_AES_128_GCM_SHA256ZTLS_CHACHA20_POLY1305_SHA256ZTLS_AES_128_CCM_SHA256ZTLS_SHA256_SHA256ZTLS_SHA256_SHA384c
	s�d}|j}|j�|jd}|jd}|dks4|dkrB|�|d�}nH|dksR|dkr`|�|d�}n*|dksp|dkr~|�|d	�}n|�|d
�}|dD].}z|�||j|�}Wq�ty�Yq�0q��dD].}z|�||j|�}Wq�ty�Yq�0qʈdD]2}z|�||j|�}Wnt�y0Yn0�q|j�	�D].\}}t
�fd
d�|D���r@|�||�}�q@�dD]2}z|�||j|�}Wnt�y�Yn0�qxdD]}	|�||	�}�q�|S)Nr	�min_dh_size�min_rsa_sizei�z@SECLEVEL=0iz@SECLEVEL=1iz@SECLEVEL=2z@SECLEVEL=3Zkey_exchangerc3s|]}|�dvVqdS)rN�)�.0�c��ipr$�=/usr/share/crypto-policies/python/policygenerators/openssl.py�	<genexpr>��z4OpenSSLGenerator.generate_ciphers.<locals>.<genexpr>r!)z-SHA384z	-CAMELLIAz-ARIAz-AESCCM8)�enabledZdisabledZintegers�append�key_exchange_map�KeyError�key_exchange_not_map�cipher_not_map�cipher_notany_multimap�items�all�mac_not_map)
�cls�policy�s�pr"r#�i�keywordZ	ciphersetr&r$r'r)�generate_ciphers�sL



z!OpenSSLGenerator.generate_cipherscsld}|j��dD]T��fdd�|j��D�}|��D].\}}t�fdd�|��D��r6|�||�}q6q|S)Nr	rcs$i|]\}}|d�hkr||�qS)rr$)r%�name�spec)r&r$r)�
<dictcomp>�s�z:OpenSSLGenerator.generate_ciphersuites.<locals>.<dictcomp>c3s,|]$\}�t�fdd��|D��VqdS)c3s|]}|�vVqdS)Nr$)r%�val�Z	algvaluesr$r)r*�r+zCOpenSSLGenerator.generate_ciphersuites.<locals>.<genexpr>.<genexpr>N)�any)r%Zalgclass)r9rAr)r*�s�z9OpenSSLGenerator.generate_ciphersuites.<locals>.<genexpr>)r,�ciphersuite_mapr3r4r-)r6r7r8Z
cipher_submapZciphersuite_nameZciphersuite_specr$)r&r9r)�generate_ciphersuites�s
��z&OpenSSLGenerator.generate_ciphersuitescCs|�|�dS)N�
)r<�r6r7r$r$r)�generate_config�sz OpenSSLGenerator.generate_configcCs�d}|�d�sJ�ztdd|dd�g�}Wn@tyZ|�d�|�d|���YdStylYd	S0d
|vs~d|vr�|�d�|�d|���dSd	S)
Nr+rErZciphers���z-There is an error in openssl generated policyzPolicy:
FTsNULLsADHz0There is NULL or ADH in openssl generated policy)�endswithrrZeprint�OSError)r6�config�outputr$r$r)�test_config�s"�


zOpenSSLGenerator.test_configN)�__name__�
__module__�__qualname__�CONFIG_NAME�SCOPESr1r2r.r0r5rC�classmethodr<rDrGrMr$r$r$r)rs����
���������)
3

rc@s�eZdZdZdddddddd	d
�Zddd
ddddddddddddddddddd d!d"�Zd#d$d%d&d'd(d)d*d+d,d-d.d/d0d1�Zed2d3��Zed4d5��Z	d6S)7�OpenSSLConfigGeneratorZ
opensslcnfZSSLv3ZTLSv1zTLSv1.1zTLSv1.2zTLSv1.3zDTLSv0.9ZDTLSv1zDTLSv1.2)zSSL3.0zTLS1.0zTLS1.1zTLS1.2rzDTLS0.9zDTLS1.0zDTLS1.2zRSA+SHA1zDSA+SHA1z
ECDSA+SHA1z
RSA+SHA224z
DSA+SHA224zECDSA+SHA224z
RSA+SHA256z
DSA+SHA256zECDSA+SHA256z
RSA+SHA384z
DSA+SHA384zECDSA+SHA384z
RSA+SHA512z
DSA+SHA512zECDSA+SHA512Zrsa_pss_pss_sha256Zrsa_pss_pss_sha384Zrsa_pss_pss_sha512Zrsa_pss_rsae_sha256Zrsa_pss_rsae_sha384Zrsa_pss_rsae_sha512Zed25519Zed448)zRSA-SHA1zDSA-SHA1z
ECDSA-SHA1z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-512z
EDDSA-ED25519zEDDSA-ED448Z	secp224r1Z	secp256r1Z	secp384r1Z	secp521r1�X25519�X448Z	ffdhe2048Z	ffdhe3072Z	ffdhe4096Z	ffdhe6144Z	ffdhe8192ZbrainpoolP256r1ZbrainpoolP384r1ZbrainpoolP512r1)Z	SECP224R1Z	SECP256R1Z	SECP384R1Z	SECP521R1rUrVz
FFDHE-2048z
FFDHE-3072z
FFDHE-4096z
FFDHE-6144z
FFDHE-8192zBRAINPOOL-P256R1zBRAINPOOL-P384R1zBRAINPOOL-P512R1csP|j}d��|��d�}|d��|��d�7}|jrT|d7}|d�j|j�d�7}|jrz|d7}|d�j|j�d�7}|jr�|d7}|d�j|j�d�7}|jr�|d7}|d�j|j�d�7}�fd	d
�|dD�}|dd
�|�d7}�fdd
�|dD�}|dd
�|�d7}|j	ddk�r6|d7}d|dv�rL|t
7}|S)NzCipherString = rEzCiphersuites = zTLS.MinProtocol =� zTLS.MaxProtocol =zDTLS.MinProtocol =zDTLS.MaxProtocol =cs g|]}|�jvr�j|�qSr$)�sign_map�r%r:�r6r$r)�
<listcomp>-r+z:OpenSSLConfigGenerator.generate_config.<locals>.<listcomp>�signzSignatureAlgorithms = �:cs g|]}|�jvr�j|�qSr$)�	group_maprYrZr$r)r[0r+�groupz	Groups = �__ems�RELAXzOptions = RHNoEnforceEMSinFIPS
ZSHA1r)r,r<rDZmin_tls_version�protocol_mapZmax_tls_versionZmin_dtls_versionZmax_dtls_version�join�enums�
RH_ALLOW_SHA1)r6r7r9r8Zsig_algs�groupsr$rZr)rGs0z&OpenSSLConfigGenerator.generate_configcCsdS�NTr$�r6rKr$r$r)rM;sz"OpenSSLConfigGenerator.test_configN)
rNrOrPrQrbrXr^rSrGrMr$r$r$r)rT�sj���
!rTc@s0eZdZdZhd�Zedd��Zedd��ZdS)�OpenSSLFIPSGeneratorZopenssl_fipsrcCst�t|jddk��S)Nr`ra)�FIPS_MODULE_CONFIG�format�intrdrFr$r$r)rGDsz$OpenSSLFIPSGenerator.generate_configcCsdSrgr$rhr$r$r)rMMsz OpenSSLFIPSGenerator.test_configN)rNrOrPrQrRrSrGrMr$r$r$r)ri@s
riN)
�
subprocessrrZconfiggeneratorrrerjrrTrir$r$r$r)�<module>sGa

© 2025 Cubjrnet7