o
    �õ±j°  ã                   @   s6   d dl mZ d dlmZ d dlmZ G dd„ dƒZdS )é    )ÚTuple)ÚISC_REQ)ÚUniCredentialc                   @   sä   e Zd Zdefdd„Zdefdd„Zdefdd„Zd	ed
efdd„Z	d%d	ed
ede
eef fdd„Zd&d	ededededef
dd„Zd	ededefdd„Zdefdd„Zdefdd„Zdefdd„Zd'ded ed!ed"efd#d$„ZdS )(ÚClientAuthAlgoÚ
credentialc                 C   s   d S ©N© )Úselfr   r   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asyauth/common/clientauthalgo.pyÚ__init__   s   zClientAuthAlgo.__init__Úreturnc                 C   ó   t ƒ ‚)z%Returns the !INITIAL! sequence number©ÚNotImplementedError©r	   r   r   r
   Úget_seq_number   ó   zClientAuthAlgo.get_seq_numberc                 C   r   )zReturns session key bytesr   r   r   r   r
   Úget_session_key   r   zClientAuthAlgo.get_session_keyÚdataÚsequence_noc                 Ã   ó   �t ƒ ‚)zEncryptes messager   )r	   r   r   r   r   r
   Úencrypt   ó   €zClientAuthAlgo.encryptÚinitNc                 Ã   r   )z3Decrypts message. Also performs integrity checking.r   )r	   r   r   Ú	directionÚ	auth_datar   r   r
   Údecrypt   r   zClientAuthAlgo.decryptFÚ
message_nor   Úreset_cipherc                 Ã   r   )z\Singing outgoing messages. The reset_cipher parameter is needed for calculating mechListMIC.r   )r	   r   r   r   r   r   r   r
   Úsign   r   zClientAuthAlgo.signÚ	signaturec                 Ã   r   )zVerifying message signaturer   )r	   r   r    r   r   r
   Úverify    r   zClientAuthAlgo.verifyc                 C   r   )z4Returns wether signing is negotiated for this clientr   r   r   r   r
   Úsigning_needed$   r   zClientAuthAlgo.signing_neededc                 C   r   )z7Returns wether encryption is negotiated for this clientr   r   r   r   r
   Úencryption_needed(   r   z ClientAuthAlgo.encryption_neededc                 C   r   )zReturns the session key bytesr   r   r   r   r
   r   ,   r   ÚauthDataÚflagsÚcb_dataÚspnc                 Ë   r   r   r   )r	   r$   r%   r&   r'   Úkwargsr   r   r
   Úauthenticate0   s   €zClientAuthAlgo.authenticate)r   N)NF)NNN)Ú__name__Ú
__module__Ú__qualname__r   r   Úintr   Úbytesr   r   r   Ú	Exceptionr   ÚstrÚboolr   r!   r"   r#   r   r)   r   r   r   r
   r      s       r   N)Útypingr   Úasyauth.common.winapi.constantsr   Úasyauth.common.credentialsr   r   r   r   r   r
   Ú<module>   s    