name : openssh.cpython-39.pyc
a

٠�g}.�@stddlZddlZddlZddlmZddlmZGdd�de�ZGdd�de�ZGd	d
�d
e�Z	dd�Z
d
d�ZdS)�N)�mkstemp�)�ConfigGeneratorc@s�eZdZdddddddddddddd	d
ddddddd�Zd
dddddd�Zddddddd�Zddddddd d!d"d#d$�
Zd%d&d'�Zd(d)d*d+d,d-d.d/�Zd0d1d2d3d4d5d6d7d8d9d:�
Z	d;d<d=d>d?d@dAdBdCdDd:�
Z
edEdF��ZdGS)H�OpenSSHGeneratorz[email protected]
aes256-ctr�z
aes192-ctrz[email protected]
aes128-ctrz[email protected]
aes256-cbcz
aes192-cbcz
aes128-cbcz3des-cbc)zAES-256-GCMzAES-256-CTRzAES-192-GCMzAES-192-CTRzAES-128-GCMzAES-128-CTRzCHACHA20-POLY1305zCAMELLIA-256-GCMzAES-256-CCMzAES-192-CCMzAES-128-CCMzCAMELLIA-128-GCMzAES-256-CBCzAES-192-CBCzAES-128-CBCzCAMELLIA-256-CBCzCAMELLIA-128-CBCzRC4-128zDES-CBCzCAMELLIA-128-CTSz3DES-CBCz[email protected][email protected][email protected][email protected][email protected][email protected])zHMAC-MD5zUMAC-64zUMAC-128z	HMAC-SHA1z
HMAC-SHA2-256z
HMAC-SHA2-512zhmac-md5z[email protected][email protected]	hmac-sha1z
hmac-sha2-256z
hmac-sha2-512zecdh-sha2-nistp521zecdh-sha2-nistp384zecdh-sha2-nistp256z.curve25519-sha256,[email protected]diffie-hellman-group1-sha1zdiffie-hellman-group14-sha1zdiffie-hellman-group14-sha256zdiffie-hellman-group16-sha512zdiffie-hellman-group18-sha512z"[email protected])
zECDHE-SECP521R1-SHA2-512zECDHE-SECP384R1-SHA2-384zECDHE-SECP256R1-SHA2-256zECDHE-X25519-SHA2-256zDHE-FFDHE-1024-SHA1zDHE-FFDHE-2048-SHA1zDHE-FFDHE-2048-SHA2-256zDHE-FFDHE-4096-SHA2-512zDHE-FFDHE-8192-SHA2-512zSNTRUP-X25519-SHA2-512z"diffie-hellman-group-exchange-sha1z$diffie-hellman-group-exchange-sha256)zDHE-SHA1zDHE-SHA2-256z
gss-gex-sha1-zgss-group1-sha1-zgss-group14-sha1-zgss-group14-sha256-zgss-nistp256-sha256-zgss-curve25519-sha256-zgss-group16-sha512-)zDHE-GSS-SHA1zDHE-GSS-FFDHE-1024-SHA1zDHE-GSS-FFDHE-2048-SHA1zDHE-GSS-FFDHE-2048-SHA2-256zECDHE-GSS-SECP256R1-SHA2-256zECDHE-GSS-X25519-SHA2-256zDHE-GSS-FFDHE-4096-SHA2-512zssh-rsazssh-dsszrsa-sha2-256zrsa-sha2-512zecdsa-sha2-nistp256z"[email protected]ecdsa-sha2-nistp384zecdsa-sha2-nistp521zssh-ed25519z[email protected])
zRSA-SHA1zDSA-SHA1zRSA-SHA2-256zRSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-256-FIDOzECDSA-SHA2-384zECDSA-SHA2-512z
EDDSA-ED25519zEDDSA-ED25519-FIDOz[email protected][email protected][email protected][email protected]([email protected][email protected]([email protected]([email protected] [email protected]#[email protected]Cs�|j}d}d}d}|dD]0}	z|�||j|	|�}WqtyHYq0q|r`|d|�d�7}d}|jddkr�|dD]0}	z|�||j|	|�}Wqzty�Yqz0qz|jdd	kr�|dD]0}	z|�||j|	|�}Wq�ty�Yq�0q�|�r
|d
|�d�7}d}d}
|dD�]&}|dD�]}|jd
�r�z$|j|d|}
|�||
|�}Wnt�yrYn0z"||d|}
|�|
|
|�}
Wnt�y�Yn0|dD]�}z*||d|d|}
|�||
|�}Wnt�y�Yn0z*||d|d|}
|�|
|
|�}
Wnt�y6Yn0�q��q(�q|
�r\|d|
�d�7}n|d7}|�rz|d|�d�7}d}|dD]n}	z|�||j	|	|�}Wnt�y�Yn0|jd�r�z|�||j
|	|�}Wnt�y�Yn0�q�|�r"|�r|d|�d�7}|d|�d�7}d}|dD]4}	z|�||j	|	|�}Wnt�y^Yn0�q.|�rz|d|�d�7}|jddk�r�t�}|du�r�||�d|jd�d�7}|S)Nr�,ZcipherzCiphers �
ZetmZDISABLE_ETMZmacZDISABLE_NON_ETMzMACs Zkey_exchange�hashZarbitrary_dh_groups�-�groupzGSSAPIKexAlgorithms zGSSAPIKeyExchange no
zKexAlgorithms �signZ	ssh_certszHostKeyAlgorithms zPubkeyAcceptedAlgorithms zCASignatureAlgorithms Zmin_rsa_sizer� )Zenabled�append�
cipher_map�KeyErrorZenums�mac_map_etm�mac_mapZintegers�gx_map�sign_map�sign_map_certs�_min_rsa_size_option)�cls�policy�local_kx_map�local_gss_kx_map�do_host_key�pZcfg�sep�s�iZgssZkx�h�val�gZmin_rsa_optname�r#�=/usr/share/crypto-policies/python/policygenerators/openssh.py�generate_optionsrs�


z!OpenSSHGenerator.generate_optionsN)
�__name__�
__module__�__qualname__rrr�kx_mapr�
gss_kx_maprr�classmethodr%r#r#r#r$rs���
�
�����
rc@s0eZdZdZhd�Zedd��Zedd��ZdS)�OpenSSHClientGenerator�openssh>zopenssh-client�sshr-cCs&t|j�}t|j�}|j|||dd�S)NF�r)�dictr)r*r%)rrrrr#r#r$�generate_config�s



�z&OpenSSHClientGenerator.generate_configc	Cs
t�d�dkrdSt�dtj�s$dSt�d�dkrHt�t��d�d|�}t�\}}d}z~t�|d	��}|�	|�Wd�n1s�0Yzt
jd
|�d�dd�}Wnt
jy�|�
d
�Yn0Wt�|�nt�|�0|�r|�
d�|�
d|���dSdS)N�OLD_OPENSSH�1T�/usr/bin/ssh�OPENSSH_MIN_RSA_SIZE_FORCE�.*r��wz/usr/bin/ssh -G -F z bogus654_server >/dev/null��shellz/usr/bin/ssh: Execution failed�4There is an error in OpenSSH server generated policy�Policy:
F)�os�getenv�access�X_OK�re�subrr�fdopen�write�
subprocess�call�CalledProcessError�eprint�unlink)r�config�fd�path�ret�fr#r#r$�test_config�s.
(�

z"OpenSSHClientGenerator.test_configN)r&r'r(�CONFIG_NAME�SCOPESr+r1rOr#r#r#r$r,�s
r,c@sLeZdZdZhd�ZdZedd��Zedd��Zedd	��Z	ed
d��Z
dS)
�OpenSSHServerGeneratorZ
opensshserver>r.r-zopenssh-serverz4systemctl try-restart sshd.service 2>/dev/null || :
cCs|j||j|jdd�S)NTr/)r%r)r*)rrr#r#r$r1s�z&OpenSSHServerGenerator.generate_configcCsht�\}}t�|�d}ztjd|�d�dd�}WntjyP|�d�Yn0|rd|�d�dS|S)	Nr7z&/usr/bin/ssh-keygen -t rsa -b 3072 -f z -N "" >/dev/nullTr9z%/usr/bin/ssh-keygen: Execution failedz4SSH Keygen failed when testing OpenSSH server policyr)rr=rIrErFrGrH)rZ_fdrLrMr#r#r$�_test_setups

��

z"OpenSSHServerGenerator._test_setupcCs|rt�|�dS�N)r=rI)rrLr#r#r$�
_test_cleanup%sz$OpenSSHServerGenerator._test_cleanupc	Cs4t�d�dkrdSt�dtj�s$dSt�d�dkrHt�t��d�d|�}|��}|sXdSt�\}}d	}z�t�	|d
��}|�
|�Wd�n1s�0Yz tjd|�d|�d
�dd�}Wntj
y�|�d�Yn0Wt�|�|�|�nt�|�|�|�0|�r0|�d�|�d|���dSdS)Nr2r3Tz/usr/sbin/sshdr5r6rFr7r8z/usr/sbin/sshd -T -h z -f z >/dev/nullr9z /usr/sbin/sshd: Execution failedr;r<)r=r>r?r@rArBrrSrrCrDrErFrGrHrIrU)rrJZhost_key_filenamerKrLrMrNr#r#r$rO*sB
(���

�

z"OpenSSHServerGenerator.test_configN)r&r'r(rPrQZ
RELOAD_CMDr+r1rSrUrOr#r#r#r$rRs


rRc	CsfzHtjddgdtjd�j��}t�d|�}|rFtdd�|��D��WSWnt	t
fy`YdS0dS)Nr4z-VF)�check�stderrzOpenSSH_(\d+).(\d+)p.*css|]}t|�VqdSrT)�int)�.0�nr#r#r$�	<genexpr>V�z#_openssh_version.<locals>.<genexpr>)rE�run�PIPErW�decoderA�match�tuple�groups�FileNotFoundError�PermissionError)Zssh_versionZverr#r#r$�_openssh_versionPs�recCsBd}t�d|�}|dkrdS|dkr>t�}|r:|dkr:dSdS|S)NZRequiredRSASizeZOPENSSH_MIN_RSA_SIZEZnone�auto)�	r)r=r>re)ZMIN_RSA_DEFAULTZmin_rsa_size_forceZopenssh_versionr#r#r$r\sr)r=rArEZtempfilerZconfiggeneratorrrr,rRrerr#r#r#r$�<module>sP+H

© 2025 Cubjrnet7