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rt
|
}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    