ó
    †(ph±  ã                   ó.   • S r SSKrSSKJr  SSKrSS jrg)zUtility functions.é    N)ÚOptionParserc                  ó¦  • [        SSS9n U R                  SSSSSS	9  U R                  S
SSSSS	9  U R                  SSSSSS9  U R                  SSSSSS9  U R                  [        R                  5      u  pUR
                  (       ae  [        SUR
                  < SUR                  < S3[        R                  S9  [        UR
                  S5       nUR                  5       nSSS5        OR[        SUR                  -  [        R                  S9  [        R                  R                  5       R                  S5      n[        W5      [        :X  d   [        U5      5       e[        R                   R"                  R%                  XAR                  5      n[        R                   R'                  UR(                  UR*                  5      nUR-                  UR.                  5      nUR0                  (       af  [        SUR0                  < SUR.                  < S3[        R                  S9  [        UR0                  S 5       nUR3                  U5        SSS5        g[        S!UR.                  -  [        R                  S9  [        R4                  R3                  UR7                  S5      5        g! , (       d  f       GN= f! , (       d  f       g= f)"z=Reads a private key and outputs the corresponding public key.zusage: %prog [options]z‚Reads a private key and outputs the corresponding public key. Both private and public keys use the format described in PKCS#1 v1.5)ÚusageÚdescriptionz-iz--inputÚ
infilenameÚstringz1Input filename. Reads from stdin if not specified)ÚdestÚtypeÚhelpz-oz--outputÚoutfilenamez2Output filename. Writes to stdout of not specifiedz--informÚinformz!key format of input - default PEM)ÚPEMÚDERr   )r	   r   ÚchoicesÚdefaultz	--outformÚoutformz"key format of output - default PEMzReading private key from z in z format)ÚfileÚrbNz+Reading private key from stdin in %s formatÚasciizWriting public key to Úwbz)Writing public key to stdout in %s format)r   Ú
add_optionÚ
parse_argsÚsysÚargvr   Úprintr   ÚstderrÚopenÚreadÚstdinÚencoder
   ÚbytesÚrsaÚkeyÚ
PrivateKeyÚ
load_pkcs1Ú	PublicKeyÚnÚeÚ
save_pkcs1r   r   ÚwriteÚstdoutÚdecode)	ÚparserÚcliÚcli_argsÚinfileÚin_dataÚpriv_keyÚpub_keyÚout_dataÚoutfiles	            Ú;/var/www/html/venv/lib/python3.13/site-packages/rsa/util.pyÚprivate_to_publicr7      sB  € ô Ø&ð.ñ€Fð ×ÑØØØØØ@ð ñ ð ×ÑØØØØØAð ñ ð ×ÑØØØ0ØØð ñ ð ×ÑØØØ1ØØð ñ ð ×'Ñ'¬¯©Ó1O€Sð ‡~‡~ÝØ:=¿.¼.È#Ï*Ì*ÐUÜ—‘ò	
ô #—.‘. $Ô'¨6Ø—k‘k“mˆG÷ (Ð'ô 	Ð;¸c¿j¹jÑHÌsÏzÉzÒZÜ—)‘)—.‘.Ó"×)Ñ)¨'Ó2ˆä‹=œEÓ!Ð0¤4¨£=Ó0Ð!ô w‰w×!Ñ!×,Ñ,¨W·j±jÓA€HÜg‰g×Ñ §
¡
¨H¯J©JÓ7€Gð ×!Ñ! #§+¡+Ó.€Hà
‡‡ÝØ7:·´ÈÏÌÐTÜ—‘ò	
ô #—/‘/ 4Ô(¨GØM‰M˜(Ô#÷ )Ð(ô 	Ð9¸C¿K¹KÑGÌcÏjÉjÒYÜ
‰
×Ñ˜Ÿ™¨Ó1Õ2÷1 (Ö'ú÷( )Õ(ús   ÃJ0ÉKÊ0
J?Ë
K)ÚreturnN)Ú__doc__r   Úoptparser   Úrsa.keyr"   r7   © ó    r6   Ú<module>r>      s   ðñ ã 
Ý !ã õJ3r=   