MOON
Server: Apache
System: Linux s5.yayogua.com.py 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: sanbercountryclu (1012)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: //usr/share/crypto-policies/python/policygenerators/__pycache__/libreswan.cpython-312.opt-1.pyc
�

��i���J�ddlZddlmZmZddlmZddlmZGd�de�Zy)�N)�CalledProcessError�call)�mkstemp�)�ConfigGeneratorc��eZdZdZdZdddddddd	d
ddd
�Zdddddddd�Zdddddddddddddd�
Zddddddddddddd�Zdddddd d!dd d!d"�
Z	d#d$d%d&d'�Z
d#d$d%d&d(�Zd#d$d)�Ze
d*��Ze
d+��Ze
d,��Ze
d-��Ze
d.��Zy/)0�LibreswanGenerator�	libreswanz5systemctl try-restart ipsec.service 2>/dev/null || :
��dh31�dh19�dh20�dh21�dh5�dh14�dh15�dh16�dh18)�X448�X25519�	SECP256R1�	SECP384R1�	SECP521R1z
FFDHE-6144z
FFDHE-1536�
FFDHE-2048z
FFDHE-3072z
FFDHE-4096z
FFDHE-8192�aes256�aes192�aes128�
aes_gcm256�
aes_gcm192�
aes_gcm128�chacha20_poly1305)zAES-256-CBCzAES-192-CBCzAES-128-CBCzAES-256-GCMzAES-192-GCMzAES-128-GCMzCHACHA20-POLY1305�sha2_512�sha2_256)
�AES-256-CBC-HMAC-SHA2-512�AES-256-CBC-HMAC-SHA2-256�AES-192-CBC-HMAC-SHA2-512�AES-192-CBC-HMAC-SHA2-256�AES-128-CBC-HMAC-SHA2-256zAES-256-GCM-HMAC-SHA2-512zAES-256-GCM-HMAC-SHA2-256zAES-192-GCM-HMAC-SHA2-512zAES-192-GCM-HMAC-SHA2-256zAES-128-GCM-HMAC-SHA2-512zAES-128-GCM-HMAC-SHA2-256zCHACHA20-POLY1305-HMAC-SHA2-512zCHACHA20-POLY1305-HMAC-SHA2-256�sha1)r$r&r%r'r(zAES-256-CBC-HMAC-SHA1zAES-192-CBC-HMAC-SHA1zAES-128-CBC-HMAC-SHA1zAES-256-GCM-AEADzAES-192-GCM-AEADzAES-128-GCM-AEADzCHACHA20-POLY1305-AEADzrsa-sha1zecdsa-sha2_256zecdsa-sha2_384zecdsa-sha2_512zrsa-sha2_256zrsa-sha2_384zrsa-sha2_512)
zRSA-SHA1zECDSA-SHA2-256zECDSA-SHA2-384zECDSA-SHA2-512zRSA-PSS-SHA2-256zRSA-PSS-SHA2-384zRSA-PSS-SHA2-512zRSA-PSS-RSAE-SHA2-256zRSA-PSS-RSAE-SHA2-384zRSA-PSS-RSAE-SHA2-512rr��)�AEAD�
HMAC-SHA2-512�
HMAC-SHA2-256�	HMAC-SHA1)r,r-r/r.)rrc�>�||jvry|j|S�N�c)�mac_ike_prio_map��cls�keys  �?/usr/share/crypto-policies/python/policygenerators/libreswan.py�__get_ike_prioz!LibreswanGenerator.__get_ike_priors&���c�*�*�*���#�#�C�(�(�c�>�||jvry|j|Sr1)�mac_esp_prio_mapr4s  r7�__get_esp_prioz!LibreswanGenerator.__get_esp_prioys$���c�*�*�*���#�#�C�(�(r9c�>�||jvry|j|Sr1)�group_prio_mapr4s  r7�__get_group_prioz#LibreswanGenerator.__get_group_prios$���c�(�(�(���!�!�#�&�&r9c�j�|jhd��}d}d}|j}d}|dD�cgc]}|jd�s�|��}}d|vrd}nd|vrd	}|r|d
|zdzz
}t|d|j�
�}	t|d|j
�
�}
d}|dD]�}	|j|}
|
dz}d}|	D]+}	|j|dz|z}|j||d�}�-|s�M||z
}d}|
D]%}	|j|}|j||d�}�'|j||d�}|j|||�}��|r|d|zdzz
}t|d|j�
�}	d}|dD]p}	|j|}
|
dz}d}|	D]1}	|j|dz|z}|s|
}n|j||d�}�3||z
}|dddk(r�^|j|||�}�r|r|d|zdzz
}d}t�}|dD];}	|j|}||vs�|j|�|j|||�}�=|r|d|zdzz
}|Scc}w#t$rY���wxYw#t$rY���wxYw#t$rY���wxYw#t$rY��wxYw#t$rY��wxYw#t$rY��wxYw)N>�ike�ipsecr
zconn %default
�,r�protocol�IKE�IKEv2�IKEv1zikev2=never�	�
�mac)r6�group�cipher�-�+z	ike=���z	esp=�signz	authby=)�scoped�enabled�
startswith�sorted�!_LibreswanGenerator__get_ike_prio�#_LibreswanGenerator__get_group_prio�
cipher_map�KeyError�cipher_prf_map�append�	group_map�!_LibreswanGenerator__get_esp_prio�cipher_mac_map�set�sign_map�add)r5�unscoped_policy�policy�cfg�sep�p�s�x�proto�sorted_macs�
sorted_groups�tmprL�cm�comborJ�mm�irK�sigalgsrP�sms                      r7�generate_configz"LibreswanGenerator.generate_config�sr�� �'�'�(E�F�������N�N�����j�M�A�M�q�Q�\�\�%�-@��M��A��e���A�
��
��A���4�!�8�d�?�"�C��Q�u�X�!$�!3�!3�5���q��z�#&�#7�#7�9�
�����k�F�
��^�^�F�+����H�E��A�"����+�+�F�S�L�3�,>�?�B��J�J�q�"�c�*��#����Q�J�E��A�"����M�M�!�,�E��J�J�q�%��-��#��J�J�u�a��-�E��*�*�S�%��-�C�1"�4��8�c�>�D�(�(�C��Q�u�X�!$�!3�!3�5������k�F�
��^�^�F�+����H�E��A�"����+�+�F�S�L�3�,>�?�B���E���J�J�q�"�c�*��#�
�Q�J�E��R�S�z�S� ���*�*�S�%��-�C�)"�,��8�c�>�D�(�(�C����%���f�I�D�
��\�\�$�'���� ����B���j�j��b�#�.�����;��$�t�+�+�C��
��kB��"�
��
�� ����� ����� �
��
�� �����(�
��
�sw�I�I�#I�?I&�9I6�7J�J�J&�	I#�"I#�&	I3�2I3�6	J�J�	J�J�	J#�"J#�&	J2�1J2c��tjdtj�syt�\}}d}	tj|d�5}|j|�ddd�	t
d|�d�d��}tj|�|r&|jd	�|jd
|���yy#1swY�YxYw#t$r|jd�Y�fwxYw#tj|�wxYw)Nz/usr/sbin/ipsecT��wz'/usr/sbin/ipsec readwriteconf --config z >/dev/null)�shellz!/usr/sbin/ipsec: Execution failedz/There is an error in libreswan generated policyzPolicy:
F)
�os�access�X_OKr�fdopen�writerr�eprint�unlink)r5�config�fd�path�ret�fs      r7�test_configzLibreswanGenerator.test_config�s����y�y�*�B�G�G�4���9���D���		����2�s�#�q������$�
@��D�T�F�(�)�04�6��

�I�I�d�O���J�J�H�I��J�J��6�(�+�,���$�#��
&�
@��
�
�>�?�
@��
�I�I�d�O�sA�C"�B6�C"�'C�6B?�;C"�C�C"�C�C"�"C9N)�__name__�
__module__�__qualname__�CONFIG_NAME�
RELOAD_CMDr[rWrYr]r_r3r;r>�classmethodrUr\rVrrr��r9r7r	r	
s|���K�I�J�������������I� ���#�#�#�0�
�J�&0�%/�%/�%/�%/�&0�%/�%/�%/�%/�%/�+5�+5�!�N�*&0�%/�%/�%/�%/�!'�!'�!'����"$��N�"�*�*�*�*�*�*�!/�!/�!/��H�����	������	����	�N��)��)��)��)�
�'��'�
�\��\�|���r9r	)	rw�
subprocessrr�tempfiler�configgeneratorrr	r�r9r7�<module>r�s!��
�/��,�n��nr9