
    Ki                       d dl mZ d dlZd dlZd dlZd dlmZmZmZmZ d dl	m
Z
 eZ G d d      Z ej                   e
d            Z ej                   e
d            Z ej                   e
d	            Zej"                  Zee_        eeeeeefe_        ej(                  Zee_        eeege_        ej*                  Zee_        eeej                  ge_        ej,                  Zee_        eefe_        ej.                  Zee_        eefe_        ej0                  Zee_        efe_        ej2                  Zee_        efe_        ej4                  Zee_        efe_        d
 Zej8                  d        Zej=                  e      ej=                  e       dd              Z!ej<                  dd       Z!d Z"d Z# G d de$      Z% G d de%      Z& G d de%      Z' G d de%      Z(ddZ)d Z*d Z+y)    )annotationsN)byrefc_int32c_uint32c_void_p)find_libraryc                       e Zd ZdZdZdZdZdZy)errori,ii3i*i$N)__name__
__module____qualname__item_not_foundkeychain_deniedsec_auth_failedplist_missingsec_interaction_not_allowed     f/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/keyring/backends/macOS/api.pyr
   r
      s    NOOM"(r   r
   SecurityCoreServices
Foundationc                6    t        j                  t        |       S N)r   in_dll_sec)ss    r   k_r   E   s    ??4##r   c                    | S r   r   )obs    r   	create_cfr!   I   s    Ir   c           	         | j                         dkD  rt        |       d}t        d |t        j                  t        |                   S )N   	   )
bit_lengthOverflowErrorCFNumberCreatectypesr   r   )valint32s     r   _r+   O   s?     ~~"C  E$v||GCL'ABBr   c                >    d}t        d | j                  d      |      S )Ni  utf8)CFStringCreateWithCStringencode)r   kCFStringEncodingUTF8s     r   r+   r+   X   s!    &$T188F+;=RSSr   c                 $   t        d t        t        |       z  t        t        | j                                t        t        |       z  t        t        | j                                t        |       t        j                  t        j                        S r   )CFDictionaryCreater   lenmapr   keysr!   values_foundkCFTypeDictionaryKeyCallBackskCFTypeDictionaryValueCallBacks)kwargss    r   create_queryr;   ^   sg    	CK	#b&++-"89	CK	#i"ABF,,.. r   c                p    t        j                  t        |       t        |             j	                  d      S )Nzutf-8)r(   	string_atCFDataGetBytePtrCFDataGetLengthdecode)datas    r   cfstr_to_strrB   i   s0    ,T2OD4IJQQ r   c                      e Zd Zed        Zy)Errorc                    |dk(  ry |t         j                  k(  rt        |d      |t         j                  k(  rt	        |d      |t         j
                  k(  s|t         j                  k(  rt        |d       | |d      )Nr   zItem not foundzKeychain Access DeniedzHSecurity Auth Failure: make sure executable is signed with codesign utilzUnknown Error)r
   r   NotFoundr   KeychainDeniedr   r   SecAuthFailure)clsstatuss     r   raise_for_statuszError.raise_for_statusp   s    Q;U)))6#344U*** )ABBU***f8K8K.K : 
 &/**r   N)r   r   r   classmethodrK   r   r   r   rD   rD   o   s    + +r   rD   c                      e Zd Zy)rF   Nr   r   r   r   r   r   rF   rF          r   rF   c                      e Zd Zy)rG   NrN   r   r   r   rG   rG      rO   r   rG   c                      e Zd Zy)rH   NrN   r   r   r   rH   rH      rO   r   rH   c                    t        t        d      t        d      ||d      }t               }t        |t	        |            }|t
        j                  k(  r|ry t        j                  |       t        |      S )NkSecClassGenericPasswordkSecMatchLimitOneT)	kSecClasskSecMatchLimitkSecAttrServicekSecAttrAccountkSecReturnData)
r;   r   r   SecItemCopyMatchingr   r
   r   rD   rK   rB   )kc_nameserviceusernamenot_found_okqrA   rJ   s          r   find_generic_passwordr`      sl    /0-. 	A :D E$K0F%%%,	6"r   c                    t        j                  t              5  t        | ||       d d d        t	        t        d      |||      }t        |d       }t        j                  |       y # 1 sw Y   CxY w)NrS   )rU   rW   rX   kSecValueData)	
contextlibsuppressrF   delete_generic_passwordr;   r   
SecItemAddrD   rK   )namer\   r]   passwordr_   rJ   s         r   set_generic_passwordri      sk    			X	& 9gx89 	/0 		A 4 F	6"9 9s   A**A3c                r    t        t        d      ||      }t        |      }t        j	                  |       y )NrS   )rU   rW   rX   )r;   r   SecItemDeleterD   rK   )rg   r\   r]   r_   rJ   s        r   re   re      s5    /0 	A 1F	6"r   )r)   z
bool | int)r   str)F),
__future__r   rc   r(   	functoolsr   r   r   r   ctypes.utilr   	OS_statusr
   CDLLr   _corer7   r2   restypeargtypesr.   r'   rf   rZ   rk   r>   r?   r   singledispatchr!   registerboolintr+   r;   rB   	ExceptionrD   rF   rG   rH   r`   ri   re   r   r   r   <module>rz      sB   "     %	) ) v{{<
+,L01	\,/	0.. %     #<< $,  !&.(%C  "&&! #Xv? __

 *
 .. '   ((3  ""! " ** #  %K  ((! $; $  
 D
CC  C T T
+I +$	u 		U 		U 	(##r   