
    mbi                       d dl mZ d dlZd dlmZmZmZmZmZ  ej        d          Z	 ej        d          Z
eZeZeZeZeZe	j        Ze ee           ee          eeege_        ee_        e	j        Zege_        ee_        e	j        Zeege_        ee_        e	j        Zege_        ee_        e	j        Zege_         ej        ej                  e_        e	j        Zege_        de_        e
j        Z e ee          ge _        ee _        e
j!        Z"ege"_        ee"_        e
j#        Z$e ee          ge$_        ee$_         ej%        e	d          Z& ej%        e	d          Z' ej%        e	d          Z(e(Z) ej%        e
d	          Z* ej%        e
d
          Z+ ej%        e
d          Z, ej%        e
d          Z- ej%        e
d          Z. ej%        e
d          Z/ddZ0ddZ1d dZ2d!dZ3dS )"    )annotationsN)POINTERbyrefc_int32c_uint32c_void_pzB/System/Library/Frameworks/CoreFoundation.framework/CoreFoundationz6/System/Library/Frameworks/Security.framework/SecuritykCFTypeDictionaryKeyCallBackskCFTypeDictionaryValueCallBackskCFBooleanTrue	kSecClasskSecClassCertificatekSecMatchLimitkSecMatchLimitAllkSecMatchTrustedOnlykSecReturnRefkeyslist[c_void_p]valuesreturnCFDictionaryRefc                    t          |           }t          |z  |  }t          |z  | }t          d |||t          t                    S N)lenr   _CFDictionaryCreate_kCFTypeDictKeyCallBacks_kCFTypeDictValueCallBacks)r   r   countKeyArrValArrs        b/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/wassima/_os/_macos.py_make_queryr!   G   sO    IIE&F(F "      querylist[CFTypeRef]c                
   t                      }t          | t          |                    }|dk    rt          d|           t	          |j                  t                    }fdt          |          D             }|S )Nr   z'SecItemCopyMatching failed with status=c                0    g | ]}t          |          S  )_CFArrayGetValueAtIndex).0i	array_refs     r    
<listcomp>z_query_refs.<locals>.<listcomp>a   s$    IIIq$Y22IIIr"   )	CFTypeRef_SecItemCopyMatchingr   OSError
CFArrayRefvalue_CFArrayGetCountrange)r#   resultstatusr   itemsr+   s        @r    _query_refsr7   X   s    [[F!%v77F{{HHHIII6<((IY''EIIIIE%LLIIIELr"   data_refr   bytesc                    t          |           }t          |           }t          t          j        ||                    }t          |            |S r   )_CFDataGetLength_CFDataGetBytePtrr9   ctypes	string_at
_CFRelease)r8   lengthptrdatas       r    _data_to_bytesrC   g   sI    h''F
H
%
%C!#v..//DxKr"   list[bytes]c            	     b   g } dD ]}t                      }t          |t          |                    }|dk    r`t          |          }t	          |          D ]A}t          ||          }|                     t          t          |                               Bt          t          t          t          t          gt          t          t           t          g          }	 t#          |          }|D ]1}	|                     t          t          |	                               2n# t$          $ r Y nw xY w| S )z
    Returns a list of DER-encoded certificates trusted for TLS server auth,
    covering system roots, admin, user trust settings, and personal CAs.
    )r         r   )r   r   )r0   !_SecTrustSettingsCopyCertificatesr   r2   r3   r(   appendrC   _SecCertificateCopyDatar!   
_kSecClass_kSecMatchLimit_kSecMatchTrustedOnly_kSecReturnRef_kSecClassCertificate_kSecMatchLimitAll_kSecBooleanTruer7   r/   )
certificatesdomain
cert_arrayr5   r   r*   cert_refr#   	cert_refscs
             r    root_der_certificatesrX   p   sK   
 !#L  W W\\
265;L;LMMQ;;$Z00E5\\ W W2:qAA##N3J83T3T$U$UVVVV /+@.Q%'9;K^\  E
&&	 	L 	LA/Fq/I/I J JKKKK	L    s   AD 
D,+D,)r   r   r   r   r   r   )r#   r   r   r$   )r8   r   r   r9   )r   rD   )4
__future__r   r=   r   r   r   r   r   CDLL_core_secr-   r0   	CFDataRefr   OSStatusCFDictionaryCreater   argtypesrestypeCFArrayGetCountr2   CFArrayGetValueAtIndexr(   CFDataGetLengthr;   CFDataGetBytePtrr<   c_ubyte	CFReleaser?   SecItemCopyMatchingr.   SecCertificateCopyDatarJ    SecTrustSettingsCopyCertificatesrH   in_dllr   r   _kCFBooleanTruerQ   rK   rO   rL   rP   rM   rN   r!   r7   rC   rX   r'   r"   r    <module>rm      s   " " " " " "  > > > > > > > > > > > > > > 	XYYv{KLL 	
	 .  (''(*;*;WWX=N=NPXZbdlm  -  ( 'L  #  6 $.#9   "+  ( &K  #  * '[  *FN6>::  _
j
 
  / !0'')2D2D E  '  5 $-;   "+  $($I !.5wwz7J7J-K ! *,4 ! ) +8?52QRR ,X_U4UVV !(/%)9::"  X_T;//
'.DEE !(/$(899$X_T+>?? '.DEE  77   "           r"   