
    Sf                     .    d Z ddlZddlmZ ddlZddZdS )zUtility functions.    N)OptionParserreturnc                     t          dd          } |                     ddddd	           |                     d
dddd	           |                     ddddd           |                     ddddd           |                     t          j                  \  }}|j        rnt          d|j        d|j        dt          j                   t          |j        d          5 }|
                                }ddd           n# 1 swxY w Y   nTt          d|j        z  t          j                   t          j        
                                                    d          }t          |          t          k    sJ t          |                      t          j        j                            ||j                  }t          j                            |j        |j                  }|                    |j                  }|j        rqt          d|j        d|j        dt          j                   t          |j        d           5 }|                    |           ddd           dS # 1 swxY w Y   dS t          d!|j        z  t          j                   t          j                            |                    d                     dS )"z=Reads a private key and outputs the corresponding public key.zusage: %prog [options]zReads 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/env/lib/python3.11/site-packages/rsa/util.pyprivate_to_publicr8      sb    &.  F @     A     0     1     ''11OS( ~ 	3:=...#***U	
 	
 	
 	
 #.$'' 	$6kkmmG	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	;cjHszZZZZ)..""))'22==E!!!4==!!! w!,,WcjAAHg
HJ77G !!#+..H
 	37:T	
 	
 	
 	
 #/4(( 	$GMM(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	9CKGcjYYYY
1122222s$   $DD	D	
I--I14I1)r   N)__doc__r   optparser   rsa.keyr#   r8        r7   <module>r>      sU      



 ! ! ! ! ! ! J3 J3 J3 J3 J3 J3r=   