a
    if                     @   s    d dl mZ G dd deZdS )   )ConfigGeneratorc                   @   s   e Zd ZdZddhZddddddd	dddddd
dddddddddZdddddddZdddddddZdddddddddd	Zd d!d"Z	d#d$d%d&d'd(d)d*d+Z
d,d-d.d/d0d1d2d3d+Zed4d5 Zed6d7 Zd8S )9LibsshGeneratorZlibsshZsshzaes256-gcm@openssh.comz
aes256-ctr z
aes192-ctrzaes128-gcm@openssh.comz
aes128-ctrzchacha20-poly1305@openssh.comz
aes256-cbcz
aes192-cbcz
aes128-cbcz3des-cbc)zAES-256-GCMzAES-256-CTRzAES-192-GCMzAES-192-CTRzAES-128-GCMzAES-128-CTRzCHACHA20-POLY1305zCAMELLIA-256-GCMzAES-256-CCMzAES-192-CCMzAES-128-CCMzCAMELLIA-128-GCMzAES-256-CBCzAES-192-CBCzAES-128-CBCzCAMELLIA-256-CBCzCAMELLIA-128-CBCzRC4-128zDES-CBCzCAMELLIA-128-CTSz3DES-CBCzhmac-sha1-etm@openssh.comzhmac-sha2-256-etm@openssh.comzhmac-sha2-512-etm@openssh.com)zHMAC-MD5zUMAC-64zUMAC-128z	HMAC-SHA1zHMAC-SHA2-256zHMAC-SHA2-512z	hmac-sha1zhmac-sha2-256zhmac-sha2-512zecdh-sha2-nistp521zecdh-sha2-nistp384zecdh-sha2-nistp256z.curve25519-sha256,curve25519-sha256@libssh.orgzdiffie-hellman-group1-sha1zdiffie-hellman-group14-sha1zdiffie-hellman-group14-sha256zdiffie-hellman-group16-sha512zdiffie-hellman-group18-sha512)	zECDHE-SECP521R1-SHA2-512zECDHE-SECP384R1-SHA2-384zECDHE-SECP256R1-SHA2-256zECDHE-X25519-SHA2-256zDHE-FFDHE-1024-SHA1zDHE-FFDHE-2048-SHA1zDHE-FFDHE-2048-SHA2-256zDHE-FFDHE-4096-SHA2-512zDHE-FFDHE-8192-SHA2-512z"diffie-hellman-group-exchange-sha1z$diffie-hellman-group-exchange-sha256)zDHE-SHA1zDHE-SHA2-256zssh-rsazssh-dsszrsa-sha2-256zrsa-sha2-512zecdsa-sha2-nistp256zecdsa-sha2-nistp384zecdsa-sha2-nistp521zssh-ed25519)zRSA-SHA1zDSA-SHA1zRSA-SHA2-256zRSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-384zECDSA-SHA2-512zEDDSA-ED25519zssh-rsa-cert-v01@openssh.comzssh-dss-cert-v01@openssh.comz!rsa-sha2-256-cert-v01@openssh.comz!rsa-sha2-512-cert-v01@openssh.comz(ecdsa-sha2-nistp256-cert-v01@openssh.comz(ecdsa-sha2-nistp384-cert-v01@openssh.comz(ecdsa-sha2-nistp521-cert-v01@openssh.comz ssh-ed25519-cert-v01@openssh.comc                 C   s  |j }d}d}d}|d D ]0}z| || j| |}W q tyH   Y q0 q|r`|d| d 7 }d}|jd dkr|d D ]0}z| || j| |}W qz ty   Y qz0 qz|jd d	kr|d D ]0}z| || j| |}W q ty   Y q0 q|r
|d
| d 7 }d}|d D ]}|d D ]}|jd rlz$| j|d |  }	| ||	|}W n tyj   Y n0 |d D ]H}
z,| j	|d |
 d |  }	| ||	|}W n ty   Y n0 qtq"q|r|d| d 7 }d}|d D ]n}z| || j
| |}W n ty   Y n0 |jd rz| || j| |}W n tyR   Y n0 q|r~|d| d 7 }|d| d 7 }|S )Nr   ,ZcipherzCiphers 
ZetmZDISABLE_ETMZmacZDISABLE_NON_ETMzMACs Zkey_exchangehashZarbitrary_dh_groups-groupzKexAlgorithms signZ	ssh_certszHostKeyAlgorithms zPubkeyAcceptedKeyTypes )Zenabledappend
cipher_mapKeyErrorZenumsmac_map_etmmac_mapZintegersgx_mapkx_mapsign_mapsign_map_certs)clsZpolicypZcfgsepsiZkxhvalg r   </usr/share/crypto-policies/python/policygenerators/libssh.pygenerate_configa   st    
zLibsshGenerator.generate_configc                 C   s   dS )NTr   )r   Zconfigr   r   r   test_config   s    zLibsshGenerator.test_configN)__name__
__module____qualname__ZCONFIG_NAMEZSCOPESr   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r   	   s   


Fr   N)Zconfiggeneratorr   r   r   r   r   r   <module>   s   