
    g                     2    d Z ddlmZ ddlmZ d Zd Zd Zy)zUtilites for mutual TLS.    )
exceptions)_mtls_helperc                      t        j                  t         j                        	 yt        j                  t         j                        	 yy)zCheck if default client SSL credentials exists on the device.

    Returns:
        bool: indicating if the default client cert source exists.
    TF)r   _check_config_pathCONTEXT_AWARE_METADATA_PATH&CERTIFICATE_CONFIGURATION_DEFAULT_PATH     O/var/www/openai/venv/lib/python3.12/site-packages/google/auth/transport/mtls.pyhas_default_client_cert_sourcer      sN     	''(P(PQ	 ''??	
 	
 r
   c                  J    t               st        j                  d      d } | S )a  Get a callback which returns the default client SSL credentials.

    Returns:
        Callable[[], [bytes, bytes]]: A callback which returns the default
            client certificate bytes and private key bytes, both in PEM format.

    Raises:
        google.auth.exceptions.DefaultClientCertSourceError: If the default
            client SSL credentials don't exist or are malformed.
    z(Default client cert source doesn't existc                      	 t        j                         \  } }}||fS # t        t        t        f$ r}t        j                  |      }||d }~ww xY w)N)r   get_client_cert_and_keyOSErrorRuntimeError
ValueErrorr   MutualTLSChannelError)_
cert_bytes	key_bytes
caught_excnew_excs        r   callbackz,default_client_cert_source.<locals>.callback:   sZ    	*'3'K'K'M$Az9
 9$$	 z2 	* 66zBGz)	*s    AA

Ar   r   r   )r   s    r   default_client_cert_sourcer   *   s,     *+..6
 	
% Or
   c                 T     t               st        j                  d       fd}|S )at  Get a callback which returns the default encrpyted client SSL credentials.

    Args:
        cert_path (str): The cert file path. The default client certificate will
            be written to this file when the returned callback is called.
        key_path (str): The key file path. The default encrypted client key will
            be written to this file when the returned callback is called.

    Returns:
        Callable[[], [str, str, bytes]]: A callback which generates the default
            client certificate, encrpyted private key and passphrase. It writes
            the certificate and private key into the cert_path and key_path, and
            returns the cert_path, key_path and passphrase bytes.

    Raises:
        google.auth.exceptions.DefaultClientCertSourceError: If any problem
            occurs when loading or saving the client certificate and key.
    z2Default client encrypted cert source doesn't existc                     	 t        j                  d      \  } }}}t        d      5 }|j                  |       d d d        t        	d      5 }|j                  |       d d d        	|fS # 1 sw Y   4xY w# 1 sw Y   xY w# t        j
                  t        f$ r}t	        j                  |      }||d }~ww xY w)NT)generate_encrypted_keywb)r   get_client_ssl_credentialsopenwriter   ClientCertErrorr   r   )
r   r   r   passphrase_bytes	cert_filekey_filer   r   	cert_pathkey_paths
           r   r   z6default_client_encrypted_cert_source.<locals>.callback^   s    	* 77tT i&)
+ 'h%y) & ($444 '&%%**G4 	* 66zBGz)	*sE   'B A/B A;"B /A84B ;B B B= B88B=r   )r'   r(   r   s   `` r   $default_client_encrypted_cert_sourcer)   F   s-    & *+..@
 	
5$ Or
   N)__doc__google.authr   google.auth.transportr   r   r   r)   r	   r
   r   <module>r-      s     " .*8*r
   