o
    àý°jc  ã                   @   sŽ   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ dd„ Z	dd„ Z
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ ZedkrEe
ƒ  dS dS )é    N)Úversion)ÚCCachec                  C   s>   t  ¡ } | jddd� | jddd� | jdddd	d
� |  ¡ S )NÚ
input_filez)File in kirbi (KRB-CRED) or ccache format)ÚhelpÚoutput_filezOutput filez-bz--base64Ú
store_truez3Decode input ticket from base64 with unwrap support)Úactionr   )ÚargparseÚArgumentParserÚadd_argumentÚ
parse_args)Úparser© r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/../../../bin/ticketConverter.pyr   (   s   ÿr   c                  C   sì   t tjƒ tƒ } | jr"tjddd�}t dƒ | t| j	ƒ¡ | 
¡  | jr(|jn| j	}t|ƒr>t dƒ t|| jƒ t dƒ nt|ƒrQt dƒ t|| jƒ t dƒ nt dƒ | jrtz| ¡  t |j¡ W d S  tys   t d	ƒ Y d S w d S )
Nzw+bF)ÚmodeÚdeletez[*] base64 decoding ticketz![*] converting kirbi to ccache...z[+] donez![*] converting ccache to kirbi...z[X] unknown file formatz:[!] Failed to clean temporary files due to PermissionError)Úprintr   ÚBANNERr   Úbase64ÚtempfileÚNamedTemporaryFileÚwriteÚbase64_decode_with_unwrapr   ÚflushÚnameÚis_kirbi_fileÚconvert_kirbi_to_ccacher   Úis_ccache_fileÚconvert_ccache_to_kirbiÚcloseÚosÚunlinkÚPermissionError)ÚargsÚdecoded_filer   r   r   r   Úmain2   s2   


ÿür%   c                 C   óN   t | dƒ�}t d| d¡¡d }W d   ƒ |dkS 1 sw   Y  |dkS )NÚrbú>Bé   r   év   ©ÚopenÚstructÚunpackÚread©ÚfilenameÚfiÚfileidr   r   r   r   S   ó   
ÿþr   c                 C   r&   )Nr'   r(   r)   r   é   r+   r0   r   r   r   r   Y   r4   r   c                 C   ó   t  | ¡}| |¡ d S ©N)r   ÚloadKirbiFileÚsaveFile©Úinput_filenameÚoutput_filenameÚccacher   r   r   r   _   ó   
r   c                 C   r6   r7   )r   ÚloadFileÚsaveKirbiFiler:   r   r   r   r   d   r>   r   c                 C   sZ   t | ddd��}d | ¡  ¡  ¡ ¡}t | d¡¡}W d   ƒ |S 1 s&w   Y  |S )NÚrzlatin-1)ÚencodingÚ )r,   Újoinr/   ÚstripÚ
splitlinesr   Ú	b64decodeÚencode)r;   ÚfÚdatar   r   r   r   i   s   
þür   Ú__main__)r    r	   r   r-   r   Úimpacketr   Úimpacket.krb5.ccacher   r   r%   r   r   r   r   r   Ú__name__r   r   r   r   Ú<module>   s"   
!
ÿ