3
uQh                 @   s2   d Z ddlZddlmZ ddlZddddZdS )zUtility functions.    N)OptionParser)returnc        	      C   s  t ddd} | jdddddd	 | jd
ddddd	 | jdddd dd | jdddd!dd | jtj\}}|jrtd|j|jf tjd t	|jd}|j
 }W dQ R X n$td|j tjd tjj
 jd}t|tkstt|tjjj||j}tjj|j|j}|j|j}|jr`td|j|jf tjd t	|jd}|j| W dQ R X n&td|j tjd tjj|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DER)r   r
   choicesdefaultz	--outformoutformz"key format of output - default PEMz(Reading private key from %s in %s format)filerbNz+Reading private key from stdin in %s formatasciiz%Writing public key to %s in %s formatwbz)Writing public key to stdout in %s format)r   r   )r   r   )r   
add_option
parse_argssysargvr   printr   stderropenreadstdinencoder	   bytesAssertionErrorrsakeyZ
PrivateKeyZ
load_pkcs1Z	PublicKeyneZ
save_pkcs1r   r   writestdoutdecode)	parsercliZcli_argsinfileZin_dataZpriv_keyZpub_keyZout_dataoutfile r-   '/tmp/pip-build-2nz6shyl/rsa/rsa/util.pyprivate_to_public   s`    

r/   )__doc__r   optparser   Zrsa.keyr"   r/   r-   r-   r-   r.   <module>   s   