a Ch@s ddlmZGdddeZdS))ConfigGeneratorc@seZdZdZddhZddddddd dddddd d d dddddd dZdddddddZdddddddZdddddddddd Zd d!d"Z d#d$d%d&d'd(d)d*d+Z d,d-d.d/d0d1d2d3d+Z e d4d5Z e d6d7Zd8S)9LibsshGeneratorZlibsshZsshzaes256-gcm@openssh.comz aes256-ctrz aes192-ctrzaes128-gcm@openssh.comz aes128-ctrzchacha20-poly1305@openssh.comz aes256-cbcz aes192-cbcz aes128-cbcz3des-cbc)z AES-256-GCMz AES-256-CTRz AES-192-GCMz AES-192-CTRz AES-128-GCMz AES-128-CTRzCHACHA20-POLY1305zCAMELLIA-256-GCMz AES-256-CCMz AES-192-CCMz AES-128-CCMzCAMELLIA-128-GCMz AES-256-CBCz AES-192-CBCz AES-128-CBCzCAMELLIA-256-CBCzCAMELLIA-128-CBCzRC4-128zDES-CBCzCAMELLIA-128-CTSz3DES-CBCzhmac-sha1-etm@openssh.comzhmac-sha2-256-etm@openssh.comzhmac-sha2-512-etm@openssh.com)zHMAC-MD5zUMAC-64zUMAC-128z HMAC-SHA1z HMAC-SHA2-256z HMAC-SHA2-512z hmac-sha1z hmac-sha2-256z hmac-sha2-512zecdh-sha2-nistp521zecdh-sha2-nistp384zecdh-sha2-nistp256z.curve25519-sha256,curve25519-sha256@libssh.orgzdiffie-hellman-group1-sha1zdiffie-hellman-group14-sha1zdiffie-hellman-group14-sha256zdiffie-hellman-group16-sha512zdiffie-hellman-group18-sha512) 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-512z"diffie-hellman-group-exchange-sha1z$diffie-hellman-group-exchange-sha256)zDHE-SHA1z DHE-SHA2-256zssh-rsazssh-dssz rsa-sha2-256z rsa-sha2-512zecdsa-sha2-nistp256zecdsa-sha2-nistp384zecdsa-sha2-nistp521z ssh-ed25519)zRSA-SHA1zDSA-SHA1z RSA-SHA2-256z RSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-384zECDSA-SHA2-512z EDDSA-ED25519zssh-rsa-cert-v01@openssh.comzssh-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 Cs|j}d}d}d}|dD]0}z|||j||}WqtyHYq0q|r`|d|d7}d}|jddkr|dD]0}z|||j||}WqztyYqz0qz|jdd kr|dD]0}z|||j||}WqtyYq0q|r |d |d7}d}|d D]}|d D]}|jd rlz$|j|d|} ||| |}WntyjYn0|dD]H} z,|j |d| d|} ||| |}WntyYn0qtq"q|r|d|d7}d}|dD]n}z|||j ||}WntyYn0|jdrz|||j ||}WntyRYn0q|r~|d|d7}|d|d7}|S)Nr,ZcipherzCiphers  ZetmZ DISABLE_ETMZmacZDISABLE_NON_ETMzMACs Z key_exchangehashZarbitrary_dh_groups-groupzKexAlgorithms signZ ssh_certszHostKeyAlgorithms zPubkeyAcceptedKeyTypes ) Zenabledappend cipher_mapKeyErrorZenums mac_map_etmmac_mapZintegersgx_mapkx_mapsign_mapsign_map_certs) clsZpolicypZcfgsepsiZkxhvalgrs