o
    �õ±j™  ã                   @   s   G d d„ dƒZ dS )c                   @   sp   e Zd Zdd„ Zedd„ ƒZedd„ ƒZeddefd	d
„ƒZdd„ Z	dd„ Z
dd„ Zeddedefdd„ƒZdS )ÚKerberosSPNc                 C   s   d | _ d | _d | _d | _d S ©N)ÚusernameÚserviceÚdomainÚport©Úself© r	   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/common/spn.pyÚ__init__   s   
zKerberosSPN.__init__c                 C   s
   t  | ¡S r   )r   Úfrom_upn)Úsr	   r	   r
   Úfrom_user_email   s   
zKerberosSPN.from_user_emailc                 C   s2   t ƒ }|  d¡dkrtdƒ‚|  d¡\|_|_|S )z!Converts UserPrincipalName to SPNú@éÿÿÿÿz$Incorrect format, @ sign is missing!)r   ÚfindÚ	ExceptionÚsplitr   r   )r   Úktr	   r	   r
   r      s
   zKerberosSPN.from_upnNÚoverride_realmc                 C   s¸   t ƒ }|  d¡dkr|  dd¡\}|_| d¡\|_|_n#|  d¡dkr/|  dd¡\|_|_n| |_|du s:|dkr@td|  ƒ‚|durG||_|j d¡dkrZ|j dd¡\|_|_|S )	zS
		Converts ServicePrincipalName to SPN
		service/host@domain
		or
		host@domain
		ú/r   r   é   NÚ zIThe following SPN is incorrect without additionally setting the realm: %sú:)	r   r   Úrsplitr   r   r   r   r   r   )r   r   r   Útr	   r	   r
   Úfrom_spn   s   zKerberosSPN.from_spnc                 C   s6   | j r| jr| j d| j| jf gS | j | jgS | jgS )Nz%s:%s)r   r   r   r   r	   r	   r
   Úget_principalname5   s
   zKerberosSPN.get_principalnamec                 C   sH   | j r| jrd| j | j| j| jf S d| j | j| jf S d| j| jf S )Nz%s/%s:%s@%sz%s/%s@%sz%s@%s)r   r   r   r   r   r	   r	   r
   Úget_formatted_pname<   s
   zKerberosSPN.get_formatted_pnamec                 C   s   |   ¡ S r   )r   r   r	   r	   r
   Ú__str__D   s   zKerberosSPN.__str__Úfpathc                 C   sf   g }t | dƒ�"}|D ]}| ¡ }|dkrq
t ||¡}| |¡ q
W d   ƒ |S 1 s,w   Y  |S )NÚrr   )ÚopenÚstripr   r   Úappend)r    r   ÚresÚfÚlineÚspnr	   r	   r
   Ú	from_fileG   s   û
ÿùzKerberosSPN.from_filer   )Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr   r   Ústrr   r   r   r   r)   r	   r	   r	   r
   r      s    	

r   N)r   r	   r	   r	   r
   Ú<module>   s   