%PDF- %PDF-
| Direktori : /snap/core18/current/usr/lib/python3/dist-packages/asn1crypto/__pycache__/ |
| Current File : //snap/core18/current/usr/lib/python3/dist-packages/asn1crypto/__pycache__/pem.cpython-36.pyc |
3
@�Z � @ s� d Z ddlmZmZmZmZ ddlZddlZddlZddl m
Z
ddlmZ
mZmZ ejdk rlddlmZ ndd lmZ d
d� Zddd
�Zdd� Zddd�ZdS )zq
Encoding DER to PEM and decoding PEM to DER. Exports the following items:
- armor()
- detect()
- unarmor()
� )�unicode_literals�division�absolute_import�print_functionN� )�unwrap)� type_name�str_cls�byte_cls� )�StringIO)�BytesIOc C s8 t | t�sttdt| ����| jd�dkp6| jd�dkS )z�
Detect if a byte string seems to contain a PEM-encoded block
:param byte_string:
A byte string to look through
:return:
A boolean, indicating if a PEM-encoded block is contained in the byte
string
zC
byte_string must be a byte string, not %s
s
-----BEGINr s
---- BEGIN���r )�
isinstancer
� TypeErrorr �
_type_name�find)Zbyte_string� r �0/usr/lib/python3/dist-packages/asn1crypto/pem.py�detect s
r c C s4 t |t�sttdt|� ���t | t�s:ttdt| ����| j� jd�} t� }|j d� |j | � |j d� |r�xD|D ]<}|j |jd�� |j d� |j || jd�� |j d� qvW |j d� t
j|�}t|�}d}x6||k �r|j |||d � � |j d� |d 7 }q�W |j d
� |j | � |j d� |j
� S )a
Armors a DER-encoded byte string in PEM
:param type_name:
A unicode string that will be capitalized and placed in the header
and footer of the block. E.g. "CERTIFICATE", "PRIVATE KEY", etc. This
will appear as "-----BEGIN CERTIFICATE-----" and
"-----END CERTIFICATE-----".
:param der_bytes:
A byte string to be armored
:param headers:
An OrderedDict of the header lines to write after the BEGIN line
:return:
A byte string of the PEM block
zA
der_bytes must be a byte string, not %s
zD
type_name must be a unicode string, not %s
�asciis -----BEGIN s -----
s : �
r �@ s -----END )r r
r r r r �upper�encoder
�write�base64Z b64encode�len�getvalue)r � der_bytes�headers�output�keyZ b64_bytesZb64_len�ir r r �armor2 s<