
    .Ph                       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j        Zee_        efe_        ej        Zee_        efe_        ej        Zee_        efe_        d
 Zej        d             Ze                    e          e                    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+dS )#    )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dS )errori,ii3i*i$N)__name__
__module____qualname__item_not_foundkeychain_deniedsec_auth_failedplist_missingsec_interaction_not_allowed     Z/var/www/html/test/jupyter/venv/lib/python3.11/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   val
bool | intc           	         |                                  dk    rt          |           d}t          d |t          j        t          |                               S )N   	   )
bit_lengthOverflowErrorCFNumberCreatectypesr   r   )r"   int32s     r   _r,   O   sN     ~~"C   E$v|GCLL'A'ABBBr   r   strc                N    d}t          d |                     d          |          S )Ni  utf8)CFStringCreateWithCStringencode)r   kCFStringEncodingUTF8s     r   r,   r,   X   s'    &$T188F+;+;=RSSSr   c                 \   t          d t          t          |           z  t          t          |                                            t          t          |           z  t          t          |                                            t          |           t          j	        t          j
                  S r   )CFDictionaryCreater   lenmapr   keysr!   values_foundkCFTypeDictionaryKeyCallBackskCFTypeDictionaryValueCallBacks)kwargss    r   create_queryr=   ^   sv    	CKK	#b&++--"8"89	CKK	#i"A"ABF,.  r   c                    t          j        t          |           t          |                                         d          S )Nzutf-8)r*   	string_atCFDataGetBytePtrCFDataGetLengthdecode)datas    r   cfstr_to_strrD   i   s;    ,T22OD4I4IJJQQ  r   c                  $    e Zd Zed             ZdS )Errorc                
   |dk    rd S |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;;FU)))6#3444U*** )ABBBU***f8K.K.K :  
 c&/***r   N)r   r   r   classmethodrM   r   r   r   rF   rF   o   s-        + + [+ + +r   rF   c                      e Zd ZdS )rH   Nr   r   r   r   r   r   rH   rH              Dr   rH   c                      e Zd ZdS )rI   NrP   r   r   r   rI   rI      rQ   r   rI   c                      e Zd ZdS )rJ   NrP   r   r   r   rJ   rJ      rQ   r   rJ   Fc                .   t          t          d          t          d          ||d          }t                      }t          |t	          |                    }|t
          j        k    r|rd S t                              |           t          |          S )NkSecClassGenericPasswordkSecMatchLimitOneT)	kSecClasskSecMatchLimitkSecAttrServicekSecAttrAccountkSecReturnData)
r=   r   r   SecItemCopyMatchingr   r
   r   rF   rM   rD   )kc_nameserviceusernamenot_found_okqrC   rL   s          r   find_generic_passwordrb      s    /00-.. 	 	 	A ::D E$KK00F%%%,%	6"""r   c                   t          j        t                    5  t          | ||           d d d            n# 1 swxY w Y   t	          t          d          |||          }t          |d           }t                              |           d S )NrU   )rW   rY   rZ   kSecValueData)	
contextlibsuppressrH   delete_generic_passwordr=   r   
SecItemAddrF   rM   )namer^   r_   passwordra   rL   s         r   set_generic_passwordrk      s    		X	&	& 9 9gx8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 	/00 		 	 	A 4  F	6"""""s   8<<c                    t          t          d          ||          }t          |          }t                              |           d S )NrU   )rW   rY   rZ   )r=   r   SecItemDeleterF   rM   )ri   r^   r_   ra   rL   s        r   rg   rg      sQ    /00 	 	 	A 1F	6"""""r   )r"   r#   )r   r-   )F),
__future__r   re   r*   	functoolsr   r   r   r   ctypes.utilr   	OS_statusr
   CDLLr   _corer9   r4   restypeargtypesr0   r)   rh   r\   rm   r@   rA   r   singledispatchr!   registerboolintr,   r=   rD   	ExceptionrF   rH   rI   rJ   rb   rk   rg   r   r   r   <module>r{      s   " " " " " "                     % $ $ $ $ $	) ) ) ) ) ) ) ) v{<<
++,,LL0011	\\,//	0	0. %     #< $,  !&.(%C  "&! #Xv? _

 *
 . '   ((3  "! " * #  %K  (! $; $ $ $   
 D
CC C C  C T T T T
    + + + + +I + + +$	 	 	 	 	u 	 	 		 	 	 	 	U 	 	 		 	 	 	 	U 	 	 	   (# # ## # # # #r   