o
    l>j)                  
   @   s0  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ zd dl mZ W n ey-   edw G dd deZG dd deZdZd	ZdZd
ZdZdZdZdZdZedZeejeeeejeeeeeejeedefZeejeeeejeeeeeejeedefZdddZ dddZ!dS )    )POINTERWINFUNCTYPE	StructureWinDLLbyrefc_char_pc_void_pcastcreate_string_buffermemmovewindll)wintypesr   c                   @   s$   e Zd ZdejfdeejfgZdS )	DATA_BLOBcbDatapbDataN)__name__
__module____qualname__r   DWORDr   BYTE_fields_ r   r   M/home/thesage/.local/lib/python3.10/site-packages/keyrings/alt/_win_crypto.pyr      s    r   c                   @   s4   e Zd ZdejfdejfdejfdeejfgZdS )CRYPTPROTECT_PROMPTSTRUCTcbSizedwPromptFlagshwndAppszPromptN)	r   r   r   r   r   HWNDr   WCHARr   r   r   r   r   r      s    r                      @      zCRYPT32.DLLCryptProtectDataCryptUnprotectDatac              	   C   x   t t| tt| ttjd}t  }tt|dd d d t	t|s%t
dt|j}t||j|j tj|j |jS )Nr   r   python-keyring-lib.win32cryptozCan't encrypt)r   lenr	   r   r   r   r   r(   r   CRYPTPROTECT_UI_FORBIDDENOSErrorr
   r   r   r   r   kernel32	LocalFreeraw)datanon_interactiveblobinblobout	encryptedr   r   r   encryptQ   $   	
r8   c              	   C   r*   )Nr+   r,   zCan't decrypt)r   r-   r	   r   r   r   r   r)   r   r.   r/   r
   r   r   r   r   r0   r1   r2   )r7   r4   r5   r6   r3   r   r   r   decrypth   r9   r:   N)r   )"ctypesr   r   r   r   r   r   r   r	   r
   r   r   r   
ValueErrorImportErrorr   r    CRYPTPROTECT_PROMPT_ON_UNPROTECTCRYPTPROTECT_PROMPT_ON_PROTECTr.   CRYPTPROTECT_LOCAL_MACHINECRYPTPROTECT_CRED_SYNCCRYPTPROTECT_AUDITCRYPTPROTECT_NO_RECOVERYCRYPTPROTECT_VERIFY_PROTECTIONCRYPTPROTECT_CRED_REGENERATE_dllBOOLr   r   r(   r)   r8   r:   r   r   r   r   <module>   sX   4 		
