HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/lib/python3.6/site-packages/rsa/__pycache__/pem.cpython-36.opt-1.pyc
3

�Cb`�@s~dZddlZddlZejeefZeejeefd�dd�Zeeeej	ed�dd�Z
eeed	�d
d�Zeeed	�dd
�ZdS)z0Functions that load and write PEM-encoded files.�N)�
pem_marker�returncCs,t|t�s|jd�}d|dd|dfS)z:
    Returns the start and end PEM markers, as bytes.
    �asciis-----BEGIN s-----s	-----END )�
isinstance�bytes�encode)r�r�/usr/lib/python3.6/pem.py�_markerss


r
)�contents�	pem_start�pem_endrccs�d}d}xh|j�D]\}|j�}|s$q||krF|r<td|��d}d}q|sLq|r^||kr^d}Pd|krhq|VqW|s�td|��|r�td|��dS)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)rrr
Zin_pem_partZseen_pem_start�linerrr	�
_pem_lines&s0
r)rrrcCsJt|t�s|jd�}t|�\}}dd�t|||�D�}dj|�}tj|�S)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.

    rcSsg|]}|�qSrr)�.0rrrr	�
<listcomp>gszload_pem.<locals>.<listcomp>�)rrrr
r�join�base64Zstandard_b64decode)rrrr
�	pem_linesZpemrrr	�load_pemSs


rcCsvt|�\}}tj|�jdd�}|g}x2tdt|�d�D]}|||d�}|j|�q6W|j|�|jd�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.

    �
rr�@)r
rZstandard_b64encode�replace�range�len�appendr)rrrr
Zb64rZblock_start�blockrrr	�save_pemns

r")
�__doc__rZtypingZUnion�strrZ	FlexiTextZTupler
�Iteratorrrr"rrrr	�<module>s-