HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/rsa/__pycache__/pem.cpython-312.pyc
�

�Cb`�	���dZddlZddlZejeefZdedejeeffd�Zdedededejefd	�Z
dededefd
�Zdededefd�Zy)z0Functions that load and write PEM-encoded files.�N�
pem_marker�returnc�d�t|t�s|jd�}d|zdzd|zdzfS)z:
    Returns the start and end PEM markers, as bytes.
    �asciis-----BEGIN s-----s	-----END )�
isinstance�bytes�encode)rs �)/usr/lib/python3/dist-packages/rsa/pem.py�_markersrsD��
�j�%�(��&�&�w�/�
�	��#�h�.��z�!�H�,����contents�	pem_start�pem_endc#�K�d}d}|j�D]F}|j�}|s�||k(r|rtd|z��d}d}�0|s�3|r	||k(rd}nd|vr�C|���H|std|z��|rtd|z��y�w)z7Generator over PEM lines between pem_start and pem_end.FzSeen start marker "%r" twiceT�:zNo PEM start marker "%r" foundzNo PEM end marker "%r" foundN)�
splitlines�strip�
ValueError)r
rr�in_pem_part�seen_pem_start�lines      r
�
_pem_linesr&s������K��N��#�#�%����z�z�|�����9��� �!?�)�!K�L�L��K�!�N�����4�7�?��K���4�<���
�;�@��9�I�E�F�F���7�'�A�B�B��s�A?Bc���t|t�s|jd�}t|�\}}t	|||�D�cgc]}|��}}dj|�}t
j|�Scc}w)a�Loads a PEM file.

    :param contents: the contents of the file to interpret
    :param pem_marker: the marker of the PEM content, such as 'RSA PRIVATE KEY'
        when your file has '-----BEGIN RSA PRIVATE KEY-----' and
        '-----END RSA PRIVATE KEY-----' markers.

    :return: the base64-decoded content between the start and end markers.

    @raise ValueError: when the content is invalid, for example when the start
        marker cannot be found.

    rr)rrr	rr�join�base64�standard_b64decode)r
rrrr�	pem_lines�pems       r
�load_pemrSsn�� �h��&��?�?�7�+��#�J�/��Y��",�X�y�'�"J�K�$��K�I�K��(�(�9�
�C��$�$�S�)�)��	Ls�	A0c�<�t|�\}}tj|�jdd�}|g}t	dt|�d�D]}|||dz}|j
|��|j
|�|j
d�dj|�S)ajSaves a PEM file.

    :param contents: the contents to encode in PEM format
    :param pem_marker: the marker of the PEM content, such as 'RSA PRIVATE KEY'
        when your file has '-----BEGIN RSA PRIVATE KEY-----' and
        '-----END RSA PRIVATE KEY-----' markers.

    :return: the base64-encoded content between the start and end markers, as bytes.

    �
rr�@)rr�standard_b64encode�replace�range�len�appendr)r
rrr�b64r�block_start�blocks        r
�save_pemr+ns���$�J�/��Y��
�
#�
#�H�
-�
5�
5�e�S�
A�C���I��Q��C��"�-� ���K�+��"2�3������� ����W��
���S���:�:�i� � r)
�__doc__r�typing�Union�strr�	FlexiText�Tupler�Iteratorrrr+�rr
�<module>r4s���7�
�
�
�L�L��e��$�	����v�|�|�E�5�L�'A��*C��*C�5�*C�5�*C�V�_�_�UZ�E[�*C�Z*�y�*�i�*�E�*�6!�u�!�)�!��!r