관리-도구
편집 파일: PEM.cpython-311.pyc
� ����5H 7_#��������������������������d�dgZ�ddlZddlmZmZmZmZ�ddlmZ�ddl m Z mZ�ddlm Z mZmZ�ddlmZ�dd lmZ�dd lmZmZ�dd�Zd��Zdd �ZdS�)�encode�decode�����N)� a2b_base64� b2a_base64�hexlify� unhexlify)�MD5)�pad�unpad)�DES�DES3�AES)�PBKDF1)�get_random_bytes)�tobytes�tostrc������������������Z������|�t�����������}d|z��}|r��|d������������}t����������||ddt����������������������}|t����������||z���|ddt����������������������z ��}t����������j��������|t����������j��������|������������}|dt ����������t����������|�����������������������������������������������������������z��z ��}|� ��������������������t������������|j����������������������������������n|�t����������d���������������fd�t����������d t������������������������d ������������D���������������}|d���������������������|������������z ��}|d|z��z ��}|S�) a4��Encode a piece of binary data into PEM format. Args: data (byte string): The piece of binary data to encode. marker (string): The marker for the PEM block (e.g. "PUBLIC KEY"). Note that there is no official master list for all allowed markers. Still, you can refer to the OpenSSL_ source code. passphrase (byte string): If given, the PEM block will be encrypted. The key is derived from the passphrase. randfunc (callable): Random number generation function; it accepts an integer N and returns a byte string of random data, N bytes long. If not given, a new one is instantiated. Returns: The PEM block, as a string. .. _OpenSSL: https://github.com/openssl/openssl/blob/master/include/openssl/pem.h Nz-----BEGIN %s----- ������������z2Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,%s zEmpty passwordc����������� �������^������g�|�])}t����������t�����������||d�z���������������������������������������*S�)�0���)r���r���)�.0�i�datas��� ��o/builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/IO/PEM.py� <listcomp>zencode.<locals>.<listcomp>Z���sE��������0��0��0����J�t�A�a�"�f�H�~�.�.�/�/��0��0��0�����r���r�����z-----END %s-----)r���r���r ���r ����new�MODE_CBCr���r����upper�encryptr ���� block_size� ValueError�range�len�join) r����marker� passphrase�randfunc�out�salt�key�objenc�chunkss ���` r���r���r���/���sA������0���#�� �6� )�C���+��x��{�{���Z��r�1�c�2�2���v�c�J�&��a��C�8�8�8����#�t�}�d�3�3���F��'�$�-�-�%�%�'�'�(�(�)�� )����~�~�c�$��(9�:�:�;�;��� � ��)�*�*�*�0��0��0��0��Q��D� � �2�.�.�0��0��0�F��2�7�7�6�?�?��C����&�&�C��Jr���c����������������������dg}|dz���dz��}t����������|������������D�]I}t����������j��������|d���������|�z���|z��������������������������������������������������}|���������������������|��������������Jd���������������������|������������d�|����������S�)Nr�������r������)r&���r ���r ����digest�appendr(���)r���r-����key_len�d�m�_�nds��� r����_EVP_BytesToKeyr;���a���s~������ ��A� �2��2��A� �1�X�X������ �W�Q�r�U�T�\�D�(� )� )� 0� 0� 2� 2�� ���������8�8�A�;�;�x��x� � r���c������������������0����t����������j��������d������������}|���������������������|�������������}|st����������d�������������|���������������������d������������}t����������j��������d������������}|���������������������|�������������}|r|���������������������d������������|k����rt����������d�������������|����������������������dd�����������������������������������������������}|d������������������������������d�������������r:|st����������d �������������|d ������������������������������d������������}t����������|������������d k����s|d���������d k����rt����������d�������������|d������������������������������d������������\��}}t����������t����������|������������������������}d} |dk����r3t����������||d������������} t����������j��������| t����������j��������|������������}�n`|dk����r3t����������||d������������} t!����������j��������| t ����������j��������|������������}�n'|dk����r:t����������||dd����������d������������} t#����������j��������| t"����������j��������|������������}n�|dk����r:t����������||dd����������d������������} t#����������j��������| t"����������j��������|������������}n�|dk����r:t����������||dd����������d������������} t#����������j��������| t"����������j��������|������������}ng|�����������������������������������dk����r=t����������||dd����������d������������} t#����������j��������| t"����������j��������|�������������}d} nt����������d|z���������������|d d����������}nd}t)����������d���������������������|dd����������������������������������}d} |rB| r)t-����������|���������������������|������������|j��������������������}n|���������������������|������������}d} ||| fS�) a��Decode a PEM block into binary. Args: pem_data (string): The PEM block. passphrase (byte string): If given and the PEM block is encrypted, the key will be derived from the passphrase. Returns: A tuple with the binary data, the marker string, and a boolean to indicate if decryption was performed. Raises: ValueError: if decoding fails, if the PEM file is encrypted and no passphrase has been provided or if the passphrase is incorrect. z\s*-----BEGIN (.*)-----\s+zNot a valid PEM pre boundaryr���z-----END (.*)-----\s*$zNot a valid PEM post boundary� r���zProc-Type:4,ENCRYPTEDz-PEM is encrypted, but no passphrase available�����:r���zDEK-Infoz$PEM encryption format not supported.�,TzDES-CBCr���zDES-EDE3-CBC����zAES-128-CBCNr���zAES-192-CBCzAES-256-CBC� ���z id-aes256-gcm)�nonceFz(Unsupport PEM encryption algorithm (%s).r3���)�re�compile�matchr%����group�search�replace�split� startswithr'���r���r���r;���r���r ���r!���r ���r����lower�MODE_GCMr���r(���r����decryptr$���)�pem_datar*����rr8���r)����lines�DEK�algor-����paddingr.����objdecr����enc_flags��� r���r���r���j���sj�����(� � �0�1�1�A� ������A���9��7�8�8�8� �W�W�Q�Z�Z�F�� � �,�-�-�A� ������A���:����� � �f�$�$��8�9�9�9�� ���S�"�%�%�+�+�-�-�E�� �Q�x���2�3�3��"��� N��L�M�M�M��A�h�n�n�S�!�!���s�8�8�q�=�=�C��F�j�0�0��C�D�D�D���V�\�\�#�&�&� ��d������'�'�����9���!�*�d�A�6�6�C��W�S�#�,��5�5�F�F� �^� #� #�!�*�d�B�7�7�C��X�c�4�=�$�7�7�F�F� �]� "� "�!�*�d�2�A�2�h��;�;�C��W�S�#�,��5�5�F�F� �]� "� "�!�*�d�2�A�2�h��;�;�C��W�S�#�,��5�5�F�F� �]� "� "�!�*�d�2�A�2�h��;�;�C��W�S�#�,��5�5�F�F� �Z�Z�\�\�_� ,� ,�!�*�d�2�A�2�h��;�;�C��W�S�#�,�d�;�;�;�F��G�G��G�$�N�O�O�O��a�b�b� �������b�g�g�e�A�b�D�k�*�*�+�+�D��H� ����� (������-�-�v�/@�A�A�D�D���>�>�$�'�'�D����&�(�#�#r���)NN)N)�__all__rD����binasciir���r���r���r����Crypto.Hashr ����Crypto.Util.Paddingr ���r���� Crypto.Cipherr���r ���r����Crypto.Protocol.KDFr���� Crypto.Randomr����Crypto.Util.py3compatr���r���r���r;���r�����r���r����<module>r`������s����D��X� ��� � � � ��?��?��?��?��?��?��?��?��?��?��?��?��������������*��*��*��*��*��*��*��*��(��(��(��(��(��(��(��(��(��(��&��&��&��&��&��&��*��*��*��*��*��*��0��0��0��0��0��0��0��0�/��/��/��/�d!��!��!�S$��S$��S$��S$��S$��S$r���