Sindbad~EG File Manager
3
."�d� � @ sD d dl mZmZ d dlmZ d dlZddlmZ G dd� de�ZdS )� )�call�CalledProcessError)�mkstempN� )�ConfigGeneratorc @ s� e Zd ZdZdddhZdddddd d
�Zddd
dddddddd�
Zddddddddddd d!d"d#d$d%d&d'd(d)d*d+�Zd,d-d.�Zddd/d0d1d2d3d4d5d6d7d8d9d:d;d<�Z d=d>d?�Z
d@dAdBdCddddD�ZdEdFdGdHdIdJdKdL�Ze
dMdN� �Ze
dOdP� �ZdQS )R�GnuTLSGeneratorZgnutlsZtlsZsslz-AEADz-SHA1z-MD5z-SHA256z-SHA384z-SHA512)ZAEADz HMAC-SHA1zHMAC-MD5z
HMAC-SHA2-256z
HMAC-SHA2-384z
HMAC-SHA2-512z-GROUP-X448z
-GROUP-X25519z-GROUP-SECP256R1z-GROUP-SECP384R1z-GROUP-SECP521R1� z-GROUP-FFDHE2048z-GROUP-FFDHE3072z-GROUP-FFDHE4096z-GROUP-FFDHE8192)
ZX448ZX25519Z SECP256R1Z SECP384R1Z SECP521R1z
FFDHE-6144z
FFDHE-2048z
FFDHE-3072z
FFDHE-4096z
FFDHE-8192z
-SIGN-RSA-MD5z-SIGN-RSA-SHA1z-SIGN-DSA-SHA1z-SIGN-ECDSA-SHA1z-SIGN-RSA-SHA224z-SIGN-DSA-SHA224z-SIGN-ECDSA-SHA224z-SIGN-RSA-SHA256z-SIGN-DSA-SHA256z-SIGN-ECDSA-SHA256z-SIGN-RSA-SHA384z-SIGN-DSA-SHA384z-SIGN-ECDSA-SHA384z-SIGN-RSA-SHA512z-SIGN-DSA-SHA512z-SIGN-ECDSA-SHA512z.-SIGN-RSA-PSS-SHA256:-SIGN-RSA-PSS-RSAE-SHA256z.-SIGN-RSA-PSS-SHA384:-SIGN-RSA-PSS-RSAE-SHA384z.-SIGN-RSA-PSS-SHA512:-SIGN-RSA-PSS-RSAE-SHA512z-SIGN-EDDSA-ED448z-SIGN-EDDSA-ED25519)zRSA-MD5zRSA-SHA1zDSA-SHA1z
ECDSA-SHA1zRSA-SHA2-224zDSA-SHA2-224zECDSA-SHA2-224zRSA-SHA2-256zDSA-SHA2-256zECDSA-SHA2-256zRSA-SHA2-384zDSA-SHA2-384zECDSA-SHA2-384zRSA-SHA2-512zDSA-SHA2-512zECDSA-SHA2-512zRSA-PSS-SHA2-256zRSA-PSS-SHA2-384zRSA-PSS-SHA2-512zEDDSA-ED448z
EDDSA-ED25519z+SIGN-DSA-SHA1z+SIGN-RSA-SHA1)zDSA-SHA1zRSA-SHA1z-AES-256-GCMz-AES-128-GCMz-AES-256-CCMz-AES-128-CCMz-AES-256-CBCz-AES-128-CBCz-CAMELLIA-256-GCMz-CAMELLIA-128-GCMz-CAMELLIA-256-CBCz-CAMELLIA-128-CBCz-CHACHA20-POLY1305z -3DES-CBCz-ARCFOUR-128)zAES-256-CTRzAES-128-CTRzAES-256-GCMzAES-128-GCMzAES-256-CCMzAES-128-CCMzAES-256-CBCzAES-128-CBCzCAMELLIA-256-GCMzCAMELLIA-128-GCMzCAMELLIA-256-CBCzCAMELLIA-128-CBCzCHACHA20-POLY1305z3DES-CBCzRC4-128z +3DES-CBCz+ARCFOUR-128)z3DES-CBCzRC4-128z+RSAz+ECDHE-RSA:+ECDHE-ECDSAz+DHE-RSAz+DHE-DSS)ZRSAZECDHEzDHE-RSAzDHE-DSSZPSKzDHE-PSKz ECDHE-PSKz-VERS-SSL3.0z-VERS-TLS1.0z-VERS-TLS1.1z-VERS-TLS1.2z-VERS-TLS1.3z
-VERS-DTLS1.0z
-VERS-DTLS1.2)zSSL3.0zTLS1.0zTLS1.1zTLS1.2zTLS1.3zDTLS1.0zDTLS1.2c C sz d}|j }|j}|d rb| j|d�}x<|d D ]0}y| j|| j| �}W q. tk
r\ Y q.X q.W |d r�| j|d�}x<|d D ]0}y| j|| j| �}W q� tk
r� Y q�X q�W |d �rL| j|d�}x>|d D ]2}y| j|| j| �}W q� tk
�r Y q�X q�W x@|d D ]4}y| j|| j| �}W n tk
�rD Y nX �qW |jd �rd| j|d �}|d
�r�| j|d�}x@|d
D ]4}y| j|| j | �}W n tk
�r� Y nX �q�W x@|d
D ]4}y| j|| j
| �}W n tk
�r� Y nX �q�W x@|d D ]4}y| j|| j| �}W n tk
�r8 Y nX �qW |d
�r�| j|d�}x@|d
D ]4}y| j|| j| �}W n tk
�r� Y nX �q`W | j|d�}|jd }|jd }|dk�s�|dk�r�| j|d�}n�|dk�s�|dk�r�| j|d�}nr|dk�s|dk�r| j|d�}nP|dk�s2|dk�r@| j|d�}n.|dk�sT|dk�rb| j|d�}n| j|d�}|d7 }|S )NzSYSTEM=NONEZmacz+MAC-ALL�groupz
+GROUP-ALLZsignz +SIGN-ALLZ
sha1_in_certsz%VERIFY_ALLOW_SIGN_WITH_SHA1Zcipherz+CIPHER-ALLZkey_exchangeZprotocolz+VERS-ALL:-VERS-DTLS0.9z
+COMP-NULL�min_rsa_size�min_dh_sizei z%PROFILE_VERY_WEAKi z%PROFILE_LOWi z%PROFILE_MEDIUMi z
%PROFILE_HIGHi z%PROFILE_ULTRAz%PROFILE_FUTURE�
)
ZenabledZdisabled�append�mac_not_map�KeyError�
group_not_map�sign_not_map�legacy_sign_mapZintegers�cipher_not_map�cipher_force_map�key_exchange_map�protocol_not_map)�clsZpolicy�s�pZip�ir
r � r �=./usr/share/crypto-policies/python/policygenerators/gnutls.py�generate_configq s�
zGnuTLSGenerator.generate_configc C s� t jdt j�sdS t� \}}d}z^t j|d��}|j|� W d Q R X ytd| d dd�}W n tk
rz | jd� Y nX W d t j |� X |r�| jd � | jd
| � dS dS )Nz/usr/bin/gnutls-cliT� �wz(/usr/bin/gnutls-cli -l --priority $(cat z3 | sed 's/SYSTEM=//g' | tr --delete '
') >/dev/null)�shellz%/usr/bin/gnutls-cli: Execution failedz,There is an error in gnutls generated policyz
Policy:
%sF)
�os�access�X_OKr �fdopen�writer r Zeprint�unlink)r �config�fd�pathZret�fr r r �test_config� s&