File: //usr/share/crypto-policies/python/policygenerators/__pycache__/openssh.cpython-312.pyc
�
��i�, � �| � d dl Z d dlZd dlZd dlmZ ddlmZ G d� de� Z G d� de� Z G d � d
e� Z d� Z
y)� N)�mkstemp� )�ConfigGeneratorc
�( � e Zd Zi dd�dd�dd�dd�d d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�ddddd��Zddd d!d"d#d$�Zd%d&d'd(d)d*d$�Zd+d,d-d.d/d0d1d2d3d4d5d6d7�Zd8d9d:�Zd;d<d=d>d?d@dAdB�ZdCddDdEdFdGdHdIdJdKdL�
Z dMddNdOdPdQdRdSdTdUdL�
Z
edV� � ZyW)X�OpenSSHGeneratorzAES-256-GCMzaes256-gcm@openssh.comzAES-256-CTRz
aes256-ctrzAES-192-GCM� zAES-192-CTRz
aes192-ctrzAES-128-GCMzaes128-gcm@openssh.comzAES-128-CTRz
aes128-ctrzCHACHA20-POLY1305zchacha20-poly1305@openssh.comzCAMELLIA-256-GCMzAES-256-CCMzAES-192-CCMzAES-128-CCMzCAMELLIA-128-GCMzAES-256-CBCz
aes256-cbczAES-192-CBCz
aes192-cbczAES-128-CBCz
aes128-cbczCAMELLIA-256-CBCzCAMELLIA-128-CBCz3des-cbc)zRC4-128zDES-CBCzCAMELLIA-128-CTSz3DES-CBCzhmac-md5-etm@openssh.comzumac-64-etm@openssh.comzumac-128-etm@openssh.comzhmac-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-512zhmac-md5zumac-64@openssh.comzumac-128@openssh.comz hmac-sha1z
hmac-sha2-256z
hmac-sha2-512)zecdh-sha2-nistp521)zecdh-sha2-nistp384)zecdh-sha2-nistp256)zcurve25519-sha256zcurve25519-sha256@libssh.org)zdiffie-hellman-group1-sha1)zdiffie-hellman-group14-sha1)zdiffie-hellman-group14-sha256)zdiffie-hellman-group16-sha512)zdiffie-hellman-group18-sha512)zmlkem768x25519-sha256)zmlkem768nistp256-sha256)zmlkem1024nistp384-sha384))�ECDHE� SECP521R1�SHA2-512)r � SECP384R1�SHA2-384)r � SECP256R1�SHA2-256)r �X25519r )�DHE�
FFDHE-1024�SHA1)r �
FFDHE-2048r )r r r )r �
FFDHE-4096r )r z
FFDHE-8192r )�KEM-ECDHzMLKEM768-X25519r )r z
P256-MLKEM768r )r zP384-MLKEM1024r
)z"diffie-hellman-group-exchange-sha1)z$diffie-hellman-group-exchange-sha256))r r )r r )z
gss-gex-sha1-)zgss-group1-sha1-)zgss-group14-sha1-)zgss-group14-sha256-)zgss-nistp256-sha256-)zgss-curve25519-sha256-)zgss-group16-sha512-))�DHE-GSSr )r r r )r r r )r r r )� ECDHE-GSSr r )r r r )r r r zssh-rsazrsa-sha2-256zrsa-sha2-512zecdsa-sha2-nistp256z"sk-ecdsa-sha2-nistp256@openssh.comzecdsa-sha2-nistp384zecdsa-sha2-nistp521zssh-ed25519zsk-ssh-ed25519@openssh.com)
zRSA-SHA1zDSA-SHA1zRSA-SHA2-256zRSA-SHA2-512zECDSA-SHA2-256zECDSA-SHA2-256-FIDOzECDSA-SHA2-384zECDSA-SHA2-512z
EDDSA-ED25519zEDDSA-ED25519-FIDOzssh-rsa-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+sk-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.comz#sk-ssh-ed25519-cert-v01@openssh.comc �B � |j }d}d}d}|d D ]# } | j || j | |� }�% |r |d|� d�z
}d}|j d dk7 r+|d D ]# } | j || j
| |� }�% |j d d k7 r+|d D ]# } | j || j | |� }�% |r |d
|� d�z
}g }
g }|d D ]� }|d D ]� }
|j d
r8 |
j | j ||
f � |j |||
f � |d D ]2 } |
j ||||
f � |j ||||
f � �4 �� �� |r|ddj |� � d�z
}n|dz
}|
r|ddj |
� � d�z
}d}|d D ]T } | j || j | |� }|j d s�4 | j || j | |� }�V |r|r |d|� d�z
}|d|� d�z
}|d|� d�z
}d}|d D ]# } | j || j | |� }�% |r |d|� d�z
}|j d dkD r|d|j d � d�z
}|S # t $ r Y ��vw xY w# t $ r Y ��<w xY w# t $ r Y ��w xY w# t $ r Y ���w xY w# t $ r Y ���w xY w# t $ r Y ���w xY w# t $ r Y ���w xY w# t $ r Y ��0w xY w# t $ r Y ��dw xY w# t $ r Y ��w xY w)Nr �,�cipherzCiphers �
�etm�DISABLE_ETM�mac�DISABLE_NON_ETMzMACs �key_exchange�hash�arbitrary_dh_groups�groupzGSSAPIKexAlgorithms zGSSAPIKeyExchange no
zKexAlgorithms �sign� ssh_certszHostKeyAlgorithms zPubkeyAcceptedAlgorithms zHostbasedAcceptedAlgorithms zCASignatureAlgorithms �min_rsa_sizer zRequiredRSASize )
�enabled�append�
cipher_map�KeyError�enums�mac_map_etm�mac_map�integers�extend�gx_map�join�sign_map�sign_map_certs)�cls�policy�local_kx_map�local_gss_kx_map�do_host_key�p�cfg�sep�s�i�kxs�gss_kxs�kx�h�gs �=/usr/share/crypto-policies/python/policygenerators/openssh.py�generate_optionsz!OpenSSHGenerator.generate_optionsz s� � �
�N�N���������8��A�
��J�J�q�#�.�.��"3�S�9�� �
��X�a�S��#�#�C����<�<���-�/��u�X����
�
�1�c�o�o�a�&8�#�>�A� �
�<�<���"3�3��u�X����
�
�1�c�k�k�!�n�c�:�A� �
��U�1�#�R�=� �C������N�#�B��v�Y���?�?�#8�9���
�
�3�:�:�r�1�g�#6�7�����'7��Q��'@�A� �7��A���
�
�<��Q��
�#;�<�����'7��Q��
�'C�D�
$� � $�* ��)�#�(�(�7�*;�)<�B�?�?�C��+�+�C���^�C�H�H�S�M�?�"�5�5�C����6��A�
��J�J�q�#�,�,�q�/�3�7�� ���{�+���
�
�1�c�&8�&8��&;�S�A�A� �
� ��+�A�3�b�1�1���.�q�c��4�4�C��1�!��B�7�7�C����6��A�
��J�J�q�#�,�,�q�/�3�7�� �
��+�A�3�b�1�1�C��?�?�>�*�Q�.��%�f�o�o�n�&E�%F�b�I�I�C��
��q �
��
�� � ���� � ���� $� ���� $� ����
$� ���� $� ���� �
��
��
� ���� �
��
�s� � J�& J�# J"�4 J2�K�4K�K"�. K2� L�+ L� J�J� J�J�" J/�.J/�2 J?�>J?� K�K� K �K �" K/ �.K/ �2 K?�>K?� L�L� L�LN)
�__name__�
__module__�__qualname__r* r- r. �kx_mapr1 �
gss_kx_mapr3 r4 �classmethodrE � � rD r r s� � ���/���|�� �r�� �|� �
�/�� �|�
� �<�� �B�� �r�� �r�� �r�� �B�� �|�� �|�� �|�� �B�!�"