Ë
    V.j†&  ã                   ó¨  — d Z ddlZddlZddlZddlZddlZddlZddlZ eej                  j                  j                  «       «      Z
ej                  ej                  ej                  e   f   Zdd„Z G d„ dej$                  ¬«      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z e«       Z e«       Z e«       Z e«       Zy)zWCommandline scripts.

These scripts are called by the executables defined in setup.py.
é    Nc                  ó,  — t        j                  dd¬«      } | j                  ddd¬«       | j                  dd	dd
¬«       | j                  dddd¬«       | j                  t        j
                  dd «      \  }}t        |«      dk7  r| j                  «        t        d«      ‚	 t        |d   «      }t        d|z  t        j                  ¬«       t        j                  |«      \  }}|j                  rtt        d|j                  z  t        j                  ¬«       |j!                  |j"                  ¬«      }t%        |j                  d«      5 }|j'                  |«       ddd«       |j!                  |j"                  ¬«      }|j(                  rYt        d|j(                  z  t        j                  ¬«       t%        |j(                  d«      5 }|j'                  |«       ddd«       yt        dt        j                  ¬«       t        j*                  j,                  j'                  |«       y# t        $ rB}| j                  «        t        d|d   z  t        j                  ¬«       t        d«      |‚d}~ww xY w# 1 sw Y   �ŒxY w# 1 sw Y   yxY w)zKey generator.zusage: %prog [options] keysizez/Generates a new RSA key pair of "keysize" bits.©ÚusageÚdescriptionz--puboutÚstringzžOutput filename for the public key. The public key is not saved if this option is not present. You can use pyrsa-priv2pub to create the public key file later.©ÚtypeÚhelpú-oz--outz`Output filename for the private key. The key is written to stdout if this option is not present.z--formz7key format of the private and public keys - default PEM©ÚPEMÚDERr   ©r
   ÚchoicesÚdefaulté   Nr   zNot a valid number: %s©ÚfilezGenerating %i-bit keyzWriting public key to %s)ÚformatÚwbzWriting private key to %szWriting private key to stdout)ÚoptparseÚOptionParserÚ
add_optionÚ
parse_argsÚsysÚargvÚlenÚ
print_helpÚ
SystemExitÚintÚ
ValueErrorÚprintÚstderrÚrsaÚnewkeysÚpuboutÚ
save_pkcs1ÚformÚopenÚwriteÚoutÚstdoutÚbuffer)	ÚparserÚcliÚcli_argsÚkeysizeÚexÚpub_keyÚpriv_keyÚdataÚoutfiles	            úIC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\rsa/cli.pyÚkeygenr8   !   s.  € ô ×"Ñ"Ø.ØEô€Fð
 ×ÑØØð>ð ô ð ×ÑØØØð;ð	 ô ð ×ÑØØFØØð	 ô ð ×'Ñ'¬¯©°°¨Ó5�O€Sˆ(ä
ˆ8ƒ}˜ÒØ×ÑÔÜ˜‹mÐð$Ü�h˜q‘kÓ"ˆô 
Ð
! GÑ
+´#·*±*Õ=ÜŸ+™+ gÓ.Ñ€Wˆhð ‡z‚zÜÐ(¨3¯:©:Ñ5¼C¿J¹JÕGØ×!Ñ!¨¯©Ð!Ó2ˆÜ�#—*‘*˜dÔ# wØ�M‰M˜$Ô÷ $ð ×Ñ c§h¡hÐÓ/€Dà
‡w‚wÜÐ)¨C¯G©GÑ3¼#¿*¹*ÕEÜ�#—'‘'˜4Ô  GØ�M‰M˜$Ô÷ !Ð ô 	Ð-´C·J±JÕ?Ü�
‰
×Ñ×Ñ Õ%øô1 ò $Ø×ÑÔÜÐ&¨°!©Ñ4¼3¿:¹:ÕFÜ˜‹m Ð#ûð$ú÷ $Ñ#ú÷ !Ð ús0   Â%H/ ÅI=ÇJ
È/	I:È8=I5É5I:É=JÊ
Jc            	       óŠ  — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZej                  Zdd„Zej&                  dedej*                  j,                  dedej2                  fd„«       Zdd„Zdej8                  ej<                  ej>                  e    f   fd„Z!de de dej*                  j,                  fd„Z"de defd„Z#dede ddfd„Z$y)ÚCryptoOperationz9CLI callable that operates with input, output, and a key.Úpublicz'usage: %%prog [options] %(keyname)s_keyÚ ÚdecryptÚ	decryptedÚ
decryptingzEName of the file to %(operation)s. Reads from stdin if not specified.zjName of the file to write the %(operation_past)s file to. Written to stdout if this option is not present.r   TÚreturnNc                 óô   — | j                   | j                  j                  z  | _         | j                  | j                  j                  z  | _        | j                  | j                  j                  z  | _        y )N)r   Ú	__class__Ú__dict__Ú
input_helpÚoutput_help)Úselfs    r7   Ú__init__zCryptoOperation.__init__w   sS   € Ø—Z‘Z $§.¡.×"9Ñ"9Ñ9ˆŒ
ØŸ/™/¨D¯N©N×,CÑ,CÑCˆŒØ×+Ñ+¨d¯n©n×.EÑ.EÑEˆÕó    ÚindataÚkeyr0   c                  ó   — y)z€Performs the program's operation.

        Implement in a subclass.

        :returns: the data to write to the output.
        N© )rF   rI   rJ   r0   s       r7   Úperform_operationz!CryptoOperation.perform_operation|   s   � rH   c                 ó|  — | j                  «       \  }}| j                  |d   |j                  «      }| j                  |j                  «      }t        | j                  j                  «       t        j                  ¬«       | j                  |||«      }| j                  r| j                  ||j                  «       yy)zRuns the program.r   r   N)Ú	parse_cliÚread_keyÚkeyformÚread_infileÚinputr"   Úoperation_progressiveÚtitler   r#   rM   Ú
has_outputÚwrite_outfileÚoutput)rF   r/   r0   rJ   rI   Úoutdatas         r7   Ú__call__zCryptoOperation.__call__‡   s‘   € ð Ÿ.™.Ó*‰ˆˆhà�m‰m˜H Q™K¨¯©Ó5ˆà×!Ñ! #§)¡)Ó,ˆäˆd×(Ñ(×.Ñ.Ó0´s·z±zÕBØ×(Ñ(¨°°hÓ?ˆà�?Š?Ø×Ñ˜w¨¯
©
Õ3ð rH   c                 óè  — t        j                  | j                  | j                  ¬«      }|j	                  ddd| j
                  ¬«       | j                  r|j	                  ddd| j                  ¬«       |j	                  dd	| j                  z  d
d¬«       |j                  t        j                  dd «      \  }}t        |«      | j                  k7  r|j                  «        t        d«      ‚||fS )zFParse the CLI options

        :returns: (cli_opts, cli_args)
        r   z-iz--inputr   r   r   z--outputz	--keyformz&Key format of the %s key - default PEMr   r   r   r   N)r   r   r   r   r   rD   rV   rE   Úkeynamer   r   r   r   Úexpected_cli_argsr   r   )rF   r.   r/   r0   s       r7   rO   zCryptoOperation.parse_cli–   sÙ   € ô ×&Ñ&¨T¯Z©ZÀT×EUÑEUÔVˆà×Ñ˜$ 	°¸t¿¹ÐÔOà�?Š?Ø×Ñ˜d J°XÀD×DTÑDTÐÔUà×ÑØØ9¸D¿L¹LÑHØ"Øð	 	ô 	
ð !×+Ñ+¬C¯H©H°Q°R¨LÓ9‰ˆˆhäˆx‹=˜D×2Ñ2Ò2Ø×ÑÔÜ˜Q“-Ðà�Hˆ}ÐrH   ÚfilenamerQ   c                 óò   — t        d| j                  ›d|›�t        j                  ¬«       t	        |d«      5 }|j                  «       }ddd«       | j                  j                  |«      S # 1 sw Y   Œ%xY w)zReads a public or private key.zReading z
 key from r   ÚrbN)r"   r\   r   r#   r)   ÚreadÚ	key_classÚ
load_pkcs1)rF   r^   rQ   ÚkeyfileÚkeydatas        r7   rP   zCryptoOperation.read_key²   sY   € õ 	¨$¯,«,¹ÐAÌÏ
É
ÕSÜ�(˜DÔ! WØ—l‘l“nˆG÷ "ð �~‰~×(Ñ(¨°'Ó:Ð:÷ "Ð!ús   ¸A-Á-A6Úinnamec                 ó,  — |rDt        d|z  t        j                  ¬«       t        |d«      5 }|j	                  «       cddd«       S t        dt        j                  ¬«       t        j
                  j                  j	                  «       S # 1 sw Y   ŒLxY w)zRead the input filezReading input from %sr   r`   NzReading input from stdin)r"   r   r#   r)   ra   Ústdinr-   )rF   rf   Úinfiles      r7   rR   zCryptoOperation.read_infile»   sk   € ñ ÜÐ)¨FÑ2¼¿¹ÕDÜ�f˜dÔ# vØ—{‘{“}÷ $Ñ#ô 	Ð(¬s¯z©zÕ:Ü�y‰y×Ñ×$Ñ$Ó&Ð&÷	 $Ð#ús   ­B
Â
BrY   Úoutnamec                 ó2  — |rEt        d|z  t        j                  ¬«       t        |d«      5 }|j	                  |«       ddd«       yt        dt        j                  ¬«       t        j
                  j                  j	                  |«       y# 1 sw Y   yxY w)zWrite the output filezWriting output to %sr   r   NzWriting output to stdout)r"   r   r#   r)   r*   r,   r-   )rF   rY   rj   r6   s       r7   rW   zCryptoOperation.write_outfileÆ   sm   € ñ ÜÐ(¨7Ñ2¼¿¹ÕDÜ�g˜tÔ$¨Ø—‘˜gÔ&÷ %Ð$ô Ð,´3·:±:Õ>Ü�J‰J×Ñ×#Ñ# GÕ,÷	 %Ð$ús   ­BÂB©r@   N)%Ú__name__Ú
__module__Ú__qualname__Ú__doc__r\   r   r   Ú	operationÚoperation_pastrT   rD   rE   r]   rV   r$   Ú	PublicKeyrb   rG   ÚabcÚabstractmethodÚbytesrJ   ÚAbstractKeyÚ	IndexableÚtypingÚAnyrM   rZ   ÚTupler   ÚValuesÚListÚstrrO   rP   rR   rW   rL   rH   r7   r:   r:   d   s  „ ÙCà€GØ5€EØ€KØ€IØ €NØ(ÐØ[€Jð	?ð ð ÐØ€Jà—‘€IóFð
 	×ÑðØðØ"%§'¡'×"5Ñ"5ðØAJðà	�‰òó ðó4ð˜6Ÿ<™<¨¯©¸¿¹ÀSÑ9IÐ(IÑJó ð8; ð ;¨sð ;°s·w±w×7JÑ7Jó ;ð	' #ð 	'¨%ó 	'ð	- Uð 	-°Sð 	-¸Tô 	-rH   r:   )Ú	metaclassc            	       óh   — e Zd ZdZdZdZdZdZdZ	 dde	de
j                  j                  d	ed
e	fd„Zy)ÚEncryptOperationzEncrypts a file.r;   zWEncrypts a file. The file must be shorter than the key length in order to be encrypted.ÚencryptÚ	encryptedÚ
encryptingrI   r3   r0   r@   c                 óz   — t        |t        j                  j                  «      sJ ‚t        j                  ||«      S )zEncrypts files.)Ú
isinstancer$   rJ   rs   r‚   )rF   rI   r3   r0   s       r7   rM   z"EncryptOperation.perform_operationÝ   s/   € ô ˜'¤3§7¡7×#4Ñ#4Ô5Ð5Ð5Ü�{‰{˜6 7Ó+Ð+rH   N©rL   )rm   rn   ro   rp   r\   r   rq   rr   rT   rv   r$   rJ   rw   rx   rM   rL   rH   r7   r�   r�   Ò   sZ   „ Ùà€Gàdð ð €IØ €NØ(Ðð RTñ,Øð,Ø&)§g¡g×&9Ñ&9ð,ØENð,à	ô,rH   r�   c            	       ó€   — e Zd ZdZdZdZdZdZdZe	j                  Z	 ddede	j                  j                  d	ed
efd„Zy)ÚDecryptOperationzDecrypts a file.ÚprivatezgDecrypts a file. The original file must be shorter than the key length in order to have been encrypted.r=   r>   r?   rI   r4   r0   r@   c                 óz   — t        |t        j                  j                  «      sJ ‚t        j                  ||«      S )zDecrypts files.)r†   r$   rJ   Ú
PrivateKeyr=   )rF   rI   r4   r0   s       r7   rM   z"DecryptOperation.perform_operationò   s/   € ô ˜(¤C§G¡G×$6Ñ$6Ô7Ð7Ð7Ü�{‰{˜6 8Ó,Ð,rH   Nr‡   )rm   rn   ro   rp   r\   r   rq   rr   rT   r$   rŒ   rb   rv   rJ   rw   rx   rM   rL   rH   r7   r‰   r‰   å   se   „ Ùà€Gð	:ð ð €IØ €NØ(ÐØ—‘€Ið SUñ-Øð-Ø'*§w¡w×':Ñ':ð-ØFOð-à	ô-rH   r‰   c                   ó¬   — e Zd ZdZdZdZddj                  e«      z  ZdZ	dZ
dZej                  Zd	Zd
Zdedej$                  j&                  dedefd„Zy)ÚSignOperationzSigns a file.rŠ   z/usage: %%prog [options] private_key hash_methodzCSigns a file, outputs the signature. Choose the hash method from %sú, ÚsignÚ	signatureÚSigningé   z\Name of the file to write the signature to. Written to stdout if this option is not present.rI   r4   r0   r@   c                 óØ   — t        |t        j                  j                  «      sJ ‚|d   }|t        vr!t        ddj                  t        «      z  «      ‚t        j                  |||«      S )zSigns files.r   z%Invalid hash method, choose one of %sr�   )r†   r$   rJ   rŒ   ÚHASH_METHODSr   Újoinr�   )rF   rI   r4   r0   Úhash_methods        r7   rM   zSignOperation.perform_operation  s]   € ô ˜(¤C§G¡G×$6Ñ$6Ô7Ð7Ð7à˜q‘kˆØœlÑ*ÜÐDÀtÇyÁyÔQ]ÓG^Ñ^Ó_Ð_ä�x‰x˜ ¨+Ó6Ð6rH   N)rm   rn   ro   rp   r\   r   r–   r•   r   rq   rr   rT   r$   rŒ   rb   r]   rE   rv   rJ   rw   rx   rM   rL   rH   r7   rŽ   rŽ   ú   s„   „ Ùà€GØ=€Eð	ØŸ9™9 \Ó2ñ	3ð ð €IØ €NØ%ÐØ—‘€IØÐð	3ð ð

7Øð
7Ø'*§w¡w×':Ñ':ð
7ØFOð
7à	ô
7rH   rŽ   c                   óˆ   — e Zd ZdZdZdZdZdZdZdZ	e
j                  ZdZd	Zd
ede
j                   j"                  deddfd„Zy)ÚVerifyOperationzVerify a signature.r;   z1usage: %%prog [options] public_key signature_filezsVerifies a signature, exits with status 0 upon success, prints an error message and exits with status 1 upon error.ÚverifyÚverifiedÚ	Verifyingr“   FrI   r3   r0   r@   Nc                 óp  — t        |t        j                  j                  «      sJ ‚|d   }t	        |d«      5 }|j                  «       }ddd«       	 t        j                  ||«       t        dt        j                  ¬«       y# 1 sw Y   Œ=xY w# t        j                  $ r}t        d«      |‚d}~ww xY w)zVerifies files.r   r`   NzVerification failed.zVerification OKr   )r†   r$   rJ   rs   r)   ra   rš   ÚVerificationErrorr   r"   r   r#   )rF   rI   r3   r0   Úsignature_fileÚsigfiler‘   r2   s           r7   rM   z!VerifyOperation.perform_operation+  s—   € ô ˜'¤3§7¡7×#4Ñ#4Ô5Ð5Ð5à! !™ˆä�. $Ô'¨7ØŸ™›ˆI÷ (ð	=Ü�J‰J�v˜y¨'Ô2ô 	Ð¤c§j¡jÖ1÷ (Ð'ûô
 ×$Ñ$ò 	=ÜÐ3Ó4¸"Ð<ûð	=ús#   ¸BÁB ÂBÂB5Â$B0Â0B5)rm   rn   ro   rp   r\   r   r   rq   rr   rT   r$   rs   rb   r]   rV   rv   rJ   rw   rx   rM   rL   rH   r7   r™   r™     so   „ Ùà€GØ?€Eð	Fð ð €IØ€NØ'ÐØ—‘€IØÐØ€Jð2Øð2Ø&)§g¡g×&9Ñ&9ð2ØENð2à	ô2rH   r™   rl   )rp   rt   r   ry   r   r$   Úrsa.keyÚ	rsa.pkcs1ÚsortedÚpkcs1r•   ÚkeysÚUnionr{   r}   r~   rx   r8   ÚABCMetar:   r�   r‰   rŽ   r™   r‚   r=   r�   rš   rL   rH   r7   Ú<module>r¨      sË   ðñó
 Û 
Û Û ã 
Û Û á�c—i‘i×,Ñ,×1Ñ1Ó3Ó4€Ø�L‰L˜Ÿ™ v§{¡{°3Ñ'7Ð7Ñ8€	ó@&ôFk- §¡õ k-ô\,�ô ,ô&-�ô -ô*7�Oô 7ôB 2�oô  2ñF Ó
€Ù
Ó
€Ùƒ€Ù	Ó	�rH   