o
    j                     @   sB   d dl mZmZmZ d dlZdddZdd Zdd	 Zd
d ZdS )    )KRB_CREDEncKrbCredPartKRBCREDNd   c                    s8   t |   dd fddtdt D  S )Nz    z
    c                    s   g | ]
} ||  qS  r   ).0ikdnr   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/kerberos/kirbiutils.py
<listcomp>   s    z format_kirbi.<locals>.<listcomp>r   )base64	b64encodedecodejoinrangelen)datar   r   r	   r   format_kirbi   s   *r   c                 C   s  t | trt| j}n"t | tr| }nt | tr| j}nt | tr&| j}ntdt|  d}|d D ]}|d|d  7 }|dd	|d d	  7 }q4|d
 d dkrt
|d
 d j}|d d }|d}|d urtd	|d	 }|d}|d urd	|}|d| 7 }|d|d 7 }|d|d 7 }|d|d 7 }|d|d 7 }|d| 7 }|d|d d  7 }|dt|d d    7 }|d!7 }|tt| 7 }|S )"NzUnknown data type! %sz
ticketszRealm        : %s
realmzSname        : %s
/snamezname-stringzenc-partetyper   cipherzticket-infopnameflagsz, zUserName     : %s
zUserRealm    : %s
prealmzStartTime    : %s
	starttimezEndTime      : %s
endtimezRenewTill    : %s
z
renew-tillzFlags        : %s
zKeytype      : %s
keykeytypezKey          : %s
keyvaluezEncodedKirbi : 

)
isinstancebytesr   loadnativedictr   	Exceptiontyper   r   getr   r   r   r   dump)r   kirbitticketcredusernamer   r   r   r   describe_kirbi_data
   sB   






r2   c                 C   s   t t|  d S )N)printr2   )r   r   r   r   print_kirbi2   s   r4   c                 C   s<   t | d}t|  W d    d S 1 sw   Y  d S )Nrb)openr4   read)	kirbifilefr   r   r   parse_kirbi7   s   "r:   )r   )	"minikerberos.protocol.asn1_structsr   r   r   r   r   r2   r4   r:   r   r   r   r   <module>   s   
(