o
    �õ±j#  ã                   @   sh   d dl mZmZ d dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d
defdd	„ZdS )é    )ÚEncTicketPartÚAD_IF_RELEVANT)ÚTypeSerialization1)ÚPACTYPEÚPAC_INFO_BUFFERÚPAC_CREDENTIAL_INFOÚPAC_CREDENTIAL_DATAÚNTLM_SUPPLEMENTAL_CREDENTIAL)Úlogger)ÚKeyÚ_enctype_tableNÚ	decticketc                 C   sx  t  |d d d ¡}|d u r| }|d u rtdƒ‚td|ƒ}t|jd d ƒ}|d }g }t|d ƒD ]†}t|ƒ}	|d |	d d	 d … d |	d
 … }
t 	d|	d  ¡ |	d dkr±t
|
ƒ}t|d  }| |d|d ¡}t|ƒ}|t|ƒd d … }t|ƒ}|d D ]-}td |d ¡ƒ}|d dkrŸ| d|d  ¡ f¡ |d dkr°| d|d  ¡ f¡ qƒ|t|	ƒd … }q3|S )Nzauthorization-datar   zad-dataz'Missing tkey! Is this a PKINIT session?é   ÚBuffersÚcBuffersÚOffseté   ÚcbBufferSizez	TYPE 0x%xÚulTypeé   ÚEncryptionTypeé   ÚSerializedDataé   ÚCredentialsó    Ú
NtPasswords                   ÚNTÚ
LmPasswordÚLM)r   ÚloadÚ	Exceptionr   r   ÚnativeÚranger   r
   Údebugr   r   Údecryptr   Úlenr   r	   ÚjoinÚappendÚhex)Úpkinit_tkeyr   Útruncated_keydataÚadIfRelevantÚkeyÚpacTypeÚbuffÚcredsÚbufferNÚ
infoBufferÚdataÚcredinfoÚ	newCipherÚoutÚtype1ÚnewdataÚpccÚcredÚ
credstruct© r<   úœ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/protocol/external/ticketutil.pyÚget_NT_from_PAC   s:   
$€r>   )N)Ú"minikerberos.protocol.asn1_structsr   r   Ú$minikerberos.protocol.external.rpcrtr   Ú"minikerberos.protocol.external.pacr   r   r   r   r	   Úminikerberosr
   Ú minikerberos.protocol.encryptionr   r   r>   r<   r<   r<   r=   Ú<module>   s    