%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/crypto-policies/python/policygenerators/__pycache__/
Upload File :
Create Path :
Current File : //usr/share/crypto-policies/python/policygenerators/__pycache__/nss.cpython-39.pyc

a

C�h��@sTddlZddlZddlZddlmZmZddlmZddlm	Z	Gdd�de	�Z
dS)�N)�CalledProcessError�call)�mkstemp�)�ConfigGeneratorc@s�eZdZdZhd�Zddddddd	�Zd
ddd
ddddddddd�Zddddddddd�Zdddddddddd ddddd!d"d#�Zddddd$d%d&d'd(d)d*�
Z	d+d,d-d.d/d0d1d2�Z
d3d4d5d6d7d8d9d:d;�Zed<d=��Z
ed>d?��Zd@S)A�NSSGenerator�nss>rZsslZtls��	HMAC-SHA1�HMAC-MD5zHMAC-SHA256zHMAC-SHA384zHMAC-SHA512)ZAEADr
rz
HMAC-SHA2-256z
HMAC-SHA2-384z
HMAC-SHA2-512�SHA1�MD5ZSHA224ZSHA256ZSHA384ZSHA512)rr
zSHA2-224zSHA2-256zSHA2-384zSHA2-512zSHA3-256zSHA3-384zSHA3-512z	SHAKE-128z	SHAKE-256ZGOSTR94Z
CURVE25519�	SECP256R1�	SECP384R1�	SECP521R1Zmlkem768x25519Zsecp256r1mlkem768Zsecp384r1mlkem1024)ZX25519ZX448rrrzMLKEM768-X25519z
P256-MLKEM768zP384-MLKEM1024Zrc2Zrc4z
aes256-gcmz
aes128-gcmz
aes256-cbcz
aes128-cbczcamellia256-cbczcamellia128-cbczchacha20-poly1305zdes-ede3-cbc)zAES-256-CTRzAES-128-CTRzRC2-CBCzRC4-128zAES-256-GCMzAES-128-GCMzAES-256-CBCzAES-128-CBCzCAMELLIA-256-CBCzCAMELLIA-128-CBCzCAMELLIA-256-GCMzCAMELLIA-128-GCMzAES-256-CCMzAES-128-CCMzCHACHA20-POLY1305z3DES-CBC�RSA�DHE-RSA�DHE-DSSzECDHE-RSA:ECDHE-ECDSAzECDH-RSA:ECDH-ECDSAz
DH-RSA:DH-DSS)
ZPSKzDHE-PSKz	ECDHE-PSKzRSA-PSKrrrZECDHEZECDHZDHzssl3.0ztls1.0ztls1.1ztls1.2ztls1.3zdtls1.0zdtls1.2)zSSL3.0zTLS1.0zTLS1.1zTLS1.2zTLS1.3zDTLS1.0zDTLS1.2zRSA-PSSzRSA-PKCSZECDSAZDSAZED25519z	ML-DSA-44z	ML-DSA-65z	ML-DSA-87)zRSA-PSS-zRSA-zECDSA-zDSA-z
EDDSA-ED25519ZMLDSA44ZMLDSA65ZMLDSA87c	Cs�|j}d}|d7}|d7}|d7}d}|dD].}z|�||j|�}Wq.tyZYq.0q.|dD].}z|�||j|�}Wqfty�Yqf0qf|dD].}z|�||j|�}Wq�ty�Yq�0q�|d	D]0}z|�||j|�}Wq�t�yYq�0q�|d
D]2}z|�||j|�}Wnt�y>Yn0�qt�	dd�d
k}|j
ddk�rv|�sv|�|d�}t�}|dD]N}|j�
�D]<\}}	|�|��r�|	|v�r�|�|	�|�||	�}�q��q��q�|j�r�|j|j}
|�|d|
�}n|�|d�}|j�r,|j|j}
|�|d|
�}n|�|d�}|�|dt|jd��}|�|dt|jd��}|�|dt|jd��}||d7}|S)Nz	library=
zname=Policy
zNSS=flags=policyOnly,moduleDB
zconfig="disallow=ALL allow=r	Zmac�groupZcipher�hashZkey_exchangeZNSS_NO_TLS_REQUIRE_EMS�0�1Z__emsZENFORCEzTLS-REQUIRE-EMS�signztls-version-min=ztls-version-min=0zdtls-version-min=zdtls-version-min=0zDH-MIN=Zmin_dh_sizezDSA-MIN=Zmin_dsa_sizezRSA-MIN=Zmin_rsa_sizez"


)Zenabled�append�mac_map�KeyError�	curve_map�
cipher_map�hash_map�key_exchange_map�os�getenvZenums�set�sign_prefix_ordmap�items�
startswith�addZmin_tls_version�protocol_mapZmin_dtls_version�strZintegers)�clsZpolicy�pZcfg�s�iZno_tls_require_emsZenabled_sigalgs�prefixZsigalgZminver�r.�9/usr/share/crypto-policies/python/policygenerators/nss.py�generate_configmsn


zNSSGenerator.generate_configc	CsVtj�d�}t�|�}t�dd�dk}d}z|�d�s:d}WntyX|�d�Yn0|rf|sfd	nd
}t	�\}}d}	z�t�
|d��}
|
�|�Wd�n1s�0Yztd
|�d|�d�dd�}	Wnt
y�|�d�Yn0Wt�|�nt�|�0|	dk�r.|�d�|�d|���dS|	�rR|�d�|�d|���dSdS)NZnss3ZNSS_LAXrrTs3.80Fz9Cannot determine nss version with ctypes, assuming >=3.80z-f value -f identifierr	��wz/usr/bin/nss-policy-check � z
>/dev/null)�shellz+/usr/bin/nss-policy-check: Execution failed�z*There is a warning in NSS generated policyzPolicy:
z)There is an error in NSS generated policy)�ctypes�utilZfind_libraryZCDLLr r!ZNSS_VersionCheck�AttributeErrorZeprintr�fdopen�writerr�unlink)r)ZconfigZnss_pathZnss_libZnss_laxZnss_is_lax_by_default�options�fd�path�ret�fr.r.r/�test_config�sH

���
(�



zNSSGenerator.test_configN)�__name__�
__module__�__qualname__ZCONFIG_NAMEZSCOPESrrrrrr'r#�classmethodr0rAr.r.r.r/rs��
�����
�
Gr)r6Zctypes.utilr �
subprocessrrZtempfilerZconfiggeneratorrrr.r.r.r/�<module>s

Zerion Mini Shell 1.0