o
    �õ±jH  ã                   @   sX   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dlm
Z
 G dd„ deƒZdS )	é    )ÚList)ÚUniCredential)ÚasyauthSecretÚasyauthProtocolÚasyauthSubProtocol)ÚSubProtocol)ÚSubProtocolNativec                   @   s2   e Zd Zg eƒ fdee defdd„Zdd„ ZdS )ÚSPNEGOCredentialÚcredentialsÚsubprotocolc                 C   s   t j| tj|d� || _d S )N)Úprotocolr   )r   Ú__init__r   ÚSPNEGOr
   )Úselfr
   r   © r   ú”/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asyauth/common/credentials/spnego.pyr      s   
zSPNEGOCredential.__init__c                 O   sâ   | j jtjkrjddlm} t| jƒdkr#t| jd |ƒr#| jd  	¡ S || ƒ}| jD ]=}|j
di |¤Ž}|jtjkrG| 
tj¡}| d|¡ q*|jtjkrT| d|¡ q*|jtjkra| d|¡ q*td|j ƒ‚|S td| j  ƒ‚)	Nr   )ÚSPNEGOClientNativeé   z2NTLMSSP - Microsoft NTLM Security Support ProviderzMS KRB5 - Microsoft Kerberos 5z8Authentication protocol "%s" is not supported for SPNEGOzUnsupported subprotocol "%s"r   )r   Útyper   ÚNATIVEÚ&asyauth.protocols.spnego.client.nativer   Úlenr
   Ú
isinstanceÚget_copyÚbuild_contextr   r   ÚPLAINÚNTLMÚadd_auth_contextÚKERBEROSÚ	Exception)r   ÚargsÚkwargsr   Ússpi_ctxÚ
credentialÚcontextr   r   r   r      s"   
zSPNEGOCredential.build_contextN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r	      s    r	   N)Útypingr   Úasyauth.common.credentialsr   Úasyauth.common.constantsr   r   r   Úasyauth.common.subprotocolsr   r   r	   r   r   r   r   Ú<module>   s    