o
    jY                  
   @   s   d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	Z	ddg dfde
de
de
d	ee fd
dZdd Zdd ZedkrFe  dS dS )    N)KerberosClientFactorykerberos_url_help_epilog)Kirbi)List)         connection_urlnewpass
targetuseretypesc           
   
      s  zbg }t |tdu r|g}|D ]}t |tr$|dd |dD  t |tr.|| q|}t| }|	 }|j
|dI d H  |j||dI d H }|jdkrYtd W d S td	 t| W d S  ty }	 zt  tt|	 W Y d }	~	d S d }	~	ww )
NFc                 S   s   g | ]}t |qS  )int).0xr   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/examples/changepassword.py
<listcomp>   s    z#change_password.<locals>.<listcomp>,)override_etype)r   r   zPassword changed successfully!zError changing password!)
isinstanceliststrextendsplitr   appendr   from_url
get_clientget_TGTchange_passwordresult_codeprint	Exception	traceback	print_exc)
r	   r
   r   r   etypes_finaletypecuclientresponseer   r   r   r   	   s6   




r   c                     s   dd l } | jd| jtd}|jddd |jddd |jd	d
dd |jddddd |jddddd | }|jdkrGtjtj	d n|jdkrTtjtj
d ntjdd t|j|j|j|jI d H  d S )Nr   
Kerberoast)descriptionformatter_classepilogkerberos_connection_urlzothe kerberos target string in the following format kerberos+<stype>://<domain>\<username>@<domaincontroller-ip>)helpnewpasswordzNew passwordz-uz--targetuserzTTarget user to change password for. If not specified, the current user will be used.z-ez--etypesz23,17,18z*Encryption types to use. Default: 23,17,18)defaultr/   z-vz	--verbosecount)actionr1   )level   )argparseArgumentParserRawDescriptionHelpFormatterr   add_argument
parse_argsverboseloggingbasicConfigINFODEBUGr   r.   r0   r   r   )r6   parserargsr   r   r   amain'   s   

 rB   c                   C   s   t t  d S )N)asynciorunrB   r   r   r   r   main;   s   rE   __main__)r<   rC   minikerberos.common.factoryr   r   minikerberos.common.kirbir   typingr   r"   r   r   r   rB   rE   __name__r   r   r   r   <module>   s   *
