
    Dj)                     X   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 	 d dl mZ n# e$ r  ed          w xY w G d de          Z G 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Z ddZ!dS )    )POINTERWINFUNCTYPE	StructureWinDLLbyrefc_char_pc_void_pcastcreate_string_buffermemmovewindll)wintypesr   c                   D    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_     S/home/thesage/.hermes/venv/lib/python3.11/site-packages/keyrings/alt/_win_crypto.pyr   r      s0        8>*Xwwx}7M7M,NOHHHr   r   c                   d    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      sG        	8>"	(.)	HM"	WWX^,,-	HHHr   r                      @      zCRYPT32.DLLCryptProtectDataCryptUnprotectDatac                    t          t          |           t          t          |           t	          t
          j                                      }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	encrypteds        r   encryptr<   Q   s    4yyhtnnghm6L6L!M!M  F kkGf(!g  	' o&&&$W^44IIw~w~666
Ogn---=r   c                    t          t          |           t          t          |           t	          t
          j                                      }t                      }t          t          |          dd d d t          t          |                    st          d          t          |j                  }t          ||j        |j                   t          j                            |j                   |j        S )Nr/   r0   zCan't decrypt)r   r1   r
   r   r   r   r   r-   r   r2   r3   r   r   r   r   r   r4   r5   r6   )r;   r8   r9   r:   r7   s        r   decryptr>   h   s    9~~d8I+>+>@V@V&W&W  F kkGf(!g  	' o&&&//DD'.'.111
Ogn---8Or   N)r   )"ctypesr   r   r   r   r   r   r	   r
   r   r   r   r   
ValueErrorImportErrorr   r    CRYPTPROTECT_PROMPT_ON_UNPROTECTCRYPTPROTECT_PROMPT_ON_PROTECTr2   CRYPTPROTECT_LOCAL_MACHINECRYPTPROTECT_CRED_SYNCCRYPTPROTECT_AUDITCRYPTPROTECT_NO_RECOVERYCRYPTPROTECT_VERIFY_PROTECTIONCRYPTPROTECT_CRED_REGENERATE_dllBOOLr#   r   r,   r-   r<   r>   r   r   r   <module>rL      s                           " " " "
+j
!
!!"P P P P P	 P P P    	    $%  !"  ! !    !% #  vm	;;MGIGHNGIG%&&NGI	 	 t	 	 	[[MGIGHNGIG%&&NGI	 	 	  	     .     s   # 4