
    iA                     z    d Z ddlZddlZddlmZmZ ddlZddlmZ ddl	m
Z
 d Z	 ddeded	ed
ee   dee   f
dZy)z^
Secret Manager Handler

Handles retrieving secrets from different secret management systems.
    N)AnyOptional)print_verbose)KeyManagementSystemc                     ddl }	 t        j                  t        j                  |             j	                         | k(  S # |j
                  $ r Y yw xY w)z"Check if a string is valid base64.r   NF)binasciibase64	b64encode	b64decodedecodeError)sr   s     /Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/secret_managers/secret_manager_handler.py
_is_base64r      sJ     0 0 34;;=BB>> s   8? AAclientkey_managersecret_namekey_management_settingsreturnc                    d}|t         j                  j                  k(  s1t        |       j                  dz   t        |       j
                  z   dk(  r| j                  |      j                  }|S |t         j                  j                  k(  s| j                  j
                  dk(  rt        j                  |      }|t        d      t        |      }|du rt        j                  |      }|}nt        d      | j                  t         j"                  |d	      }|j$                  j'                  d
      }|S |t         j(                  j                  k(  r	 t        j                  |d      }	|	t+        dj-                  |            t        j                  |	      }
d|
i} | j                  di |}|d   }|j'                  d
      }t/        |t0              r|j3                         }|S |t         j4                  j                  k(  rEddlm} t/        | |      r1d}||j:                  }| j=                  ||      }t?        d|        |S |t         j@                  j                  k(  r3	 | jC                  |      }t?        d|        |t        d|       	 |S |t         jD                  j                  k(  r&	 | j=                  |      }|t        d|       	 |S |t         jF                  j                  k(  r&	 | j=                  |      }|t        d|       	 |S |t         jH                  j                  k(  rjddl%m&} t/        | |      r5| j=                  ||r|jO                         nd      }|/t        d|       t        dt        |       j
                         |S |dk(  rt        j                  |      }|S | j                  |      jP                  }|S # t*        $ r}t?        dt1        |              |d}~ww xY w# t*        $ r}t?        dt1        |              |d}~ww xY w# t*        $ r}t?        dt1        |              |d}~ww xY w)aL  
    Get a secret from the configured secret manager.

    Args:
        client: The secret manager client instance
        key_manager: The type of key manager (e.g., "azure_key_vault", "google_kms", etc.)
        secret_name: The name/path of the secret to retrieve
        key_management_settings: Optional settings for the key management system

    Returns:
        The secret value as a string, or None if not found

    Raises:
        ValueError: If the secret cannot be retrieved or required parameters are missing
        Exception: For other errors during secret retrieval
    N.z+azure.keyvault.secrets._client.SecretClientKeyManagementServiceClientzBGoogle KMS requires the encrypted secret to be in the environment!Tz@Google KMS requires the encrypted secret to be encoded in base64)name
ciphertext)requestzutf-8z+AWS KMS - Encrypted Value of Key={} is NoneCiphertextBlob	Plaintextr   )AWSSecretsManagerV2)r   primary_secret_namezget_secret_value_response: z$secret from google secret manager:  z-No secret found in Google Secret Manager for zAn error occurred - )r   z0No secret found in Hashicorp Secret Manager for z/No secret found in CyberArk Secret Manager for )CustomSecretManager)r   optional_paramsz-No secret found in Custom Secret Manager for zMCustom secret manager client must be an instance of CustomSecretManager, got local ))r   AZURE_KEY_VAULTvaluetype
__module____name__
get_secret
GOOGLE_KMS	__class__osgetenv
ValueErrorr   r	   r   decryptlitellm_google_kms_resource_name	plaintextr   AWS_KMS	Exceptionformat
isinstancestrstripAWS_SECRET_MANAGER-litellm.secret_managers.aws_secret_manager_v2r   r   sync_read_secretr   GOOGLE_SECRET_MANAGER%get_secret_from_google_secret_managerHASHICORP_VAULTCYBERARKCUSTOM*litellm.integrations.custom_secret_managerr    
model_dumpsecret_value)r   r   r   r   secretencrypted_secretb64_flagr   responseencrypted_valueciphertext_blobparamsr2   r   r   er    s                    r   get_secret_from_managerrL      s   , F 	*::@@@<""S(4<+@+@@89 "";/55@ M{ 	*55;;;$$(DD "		+ 6#T  ./t%//0@A)JR  >>99( " 
 ##**
N MG 
+3399	9	 ))K6"=DD[Q  !**?; #O4!6>>+F+ [)	!!'*fc"\\^F\ MY 
+>>DD	D	
 f12"&&2&=&Q&Q#,,'$7 - F 7x@A| My 
+AAGG	G		AA+NF@IJ~ CK=Q  p Ma 
+;;AA	A	,,,EF~ F{mT  Z MK 
+44::	:	,,,EF~ Ek]S  D M5 
+2288	8Rf12,,'* !8 B B D	 - F ~ CK=Q  _`dek`l`u`u_vw  M 
	;'
 M "";/<<Mi  	0Q9:G	  	0Q9:G	  	0Q9:G	sH   +/O# ;"P >"P7 #	P
,PP
	P4P//P47	Q QQ)N)__doc__r	   r,   typingr   r   r0   litellm._loggingr   "litellm.types.secret_managers.mainr   r   r7   rL   r#       r   <module>rR      si   
  	    * B .2	]]] ] &c]	]
 c]]rQ   