
    k7i                       S SK Jr  S SKrS SKrS SKrS SKJrJrJrJr  S SK	J
r
  \r " S S5      r\R                  " \
" S5      5      r\R                  " \
" S5      5      r\R                  " \
" S	5      5      r\R"                  r\\l        \\\\\\4\l        \R(                  r\\l        \\\/\l        \R*                  r\\l        \\\R                  /\l        \R,                  r\\l        \\4\l        \R.                  r\\l        \\4\l        \R0                  r\\l        \4\l        \R2                  r\\l        \4\l        \R4                  r\\l        \4\l        S
 r\R8                  S 5       r\R=                  \5      \R=                  \ 5      SS j5       5       r!\R<                  SS j5       r!S r"S r# " S S\$5      r% " S S\%5      r& " S S\%5      r' " S S\%5      r(SS jr)S r*S r+g)    )annotationsN)byrefc_int32c_uint32c_void_p)find_libraryc                  (    \ rS rSrSrSrSrSrSrSr	g)	error   i,ii3i*i$ N)
__name__
__module____qualname____firstlineno__item_not_foundkeychain_deniedsec_auth_failedplist_missingsec_interaction_not_allowed__static_attributes__r       T/home/james-whalen/.local/lib/python3.13/site-packages/keyring/backends/macOS/api.pyr
   r
      s    NOOM"(r   r
   SecurityCoreServices
Foundationc                8    [         R                  " [        U 5      $ N)r   in_dll_sec)ss    r   k_r!   E   s    ??4##r   c                    U $ r   r   )obs    r   	create_cfr$   I   s    Ir   c           	         U R                  5       S:  a  [        U 5      eSn[        S U[        R                  " [        U 5      5      5      $ )N   	   )
bit_lengthOverflowErrorCFNumberCreatectypesr   r   )valint32s     r   _r.   O   s?     ~~"C  E$v||GCL'ABBr   c                >    Sn[        S U R                  S5      U5      $ )Ni  utf8)CFStringCreateWithCStringencode)r    kCFStringEncodingUTF8s     r   r.   r.   X   s!    &$T188F+;=RSSr   c                 (   [        S [        [        U 5      -  " [        [        U R                  5       5      6 [        [        U 5      -  " [        [        U R                  5       5      6 [        U 5      [        R                  [        R                  5      $ 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                r    [         R                  " [        U 5      [        U 5      5      R	                  S5      $ )Nzutf-8)r+   	string_atCFDataGetBytePtrCFDataGetLengthdecode)datas    r   cfstr_to_strrE   i   s0    ,T2OD4IJQQ r   c                  $    \ rS rSr\S 5       rSrg)Erroro   c                
   US:X  a  g U[         R                  :X  a  [        US5      eU[         R                  :X  a  [	        US5      eU[         R
                  :X  d  U[         R                  :X  a  [        US5      eU " US5      e)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_statusError.raise_for_statusp   s    Q;U)))6#344U*** )ABBU***f8K8K.K : 
 &/**r   r   N)r   r   r   r   classmethodrO   r   r   r   r   rG   rG   o   s    + +r   rG   c                      \ rS rSrSrg)rJ      r   Nr   r   r   r   r   r   r   r   rJ   rJ          r   rJ   c                      \ rS rSrSrg)rK      r   NrT   r   r   r   rK   rK      rU   r   rK   c                      \ rS rSrSrg)rL      r   NrT   r   r   r   rL   rL      rU   r   rL   c                    [        [        S5      [        S5      UUSS9n[        5       n[        U[	        U5      5      nU[
        R                  :X  a  U(       a  g [        R                  U5        [        U5      $ )NkSecClassGenericPasswordkSecMatchLimitOneT)	kSecClasskSecMatchLimitkSecAttrServicekSecAttrAccountkSecReturnData)
r>   r!   r   SecItemCopyMatchingr   r
   r   rG   rO   rE   )kc_nameserviceusernamenot_found_okqrD   rN   s          r   find_generic_passwordrh      sl    /0-. 	A :D E$K0F%%%,	6"r   c                    [         R                  " [        5         [        XU5        S S S 5        [	        [        S5      UUUS9n[        US 5      n[        R                  U5        g ! , (       d  f       NE= f)Nr[   )r]   r_   r`   kSecValueData)	
contextlibsuppressrJ   delete_generic_passwordr>   r!   
SecItemAddrG   rO   )namerd   re   passwordrg   rN   s         r   set_generic_passwordrq      sb    			X	&x8 
' 	/0 		A 4 F	6" 
'	&s   A''
A5c                l    [        [        S5      UUS9n[        U5      n[        R	                  U5        g )Nr[   )r]   r_   r`   )r>   r!   SecItemDeleterG   rO   )ro   rd   re   rg   rN   s        r   rm   rm      s5    /0 	A 1F	6"r   )r,   z
bool | int)r    str)F),
__future__r   rk   r+   	functoolsr   r   r   r   ctypes.utilr   	OS_statusr
   CDLLr   _corer:   r5   restypeargtypesr1   r*   rn   rb   rs   rA   rB   r!   singledispatchr$   registerboolintr.   r>   rE   	ExceptionrG   rJ   rK   rL   rh   rq   rm   r   r   r   <module>r      s<   "     %	) ) {{<
+,L01	\,/	0.. %     #<< $,  !&.(%C  "&&! #Xv? __

 *
 .. '   ((3  ""! " ** #  %K  ((! $; $  
 D
CC  C T T
+I +$	u 		U 		U 	(##r   