
    &`i                     @    d dl Z d dlZd dlZd dlmZmZ d Zd Zd ZdS )    N)get_localhost_ip node_ip_address_from_perspectivec                     	 ddl m}  ddlm} ddlm}m} ddlm} ddl	m
} n# t          $ r t          d          w xY w|                    dd	 |            
          }|                    |j        j        |j        j        |                                                                          }|                     |                     |j        d          g          }|                     |                     t3          j        t3          j                                        |                     t9                                |                     t;                                |                     d          g          }	t<          j                                        }
|                                  !                    |          "                    |          #                    |	d          $                    |$                                          %                    | &                                          '                    |
          (                    |
t=          j)        d          z             *                    ||+                                 |                      }|,                    |j        j                                                  }||fS )zwCreate self-signed key/cert pair for testing.

    This method requires the library ``cryptography`` be installed.
    r   )x509)default_backend)hashesserialization)rsa)NameOIDz_Using `Security.temporary` requires `cryptography`, please install it using either pip or condai  i   )public_exponentkey_sizebackend)encodingformatencryption_algorithmzray-internal	localhostF)criticalim  )days)-cryptographyr   cryptography.hazmat.backendsr   cryptography.hazmat.primitivesr   r	   )cryptography.hazmat.primitives.asymmetricr
   cryptography.x509.oidr   ImportErrorgenerate_private_keyprivate_bytesEncodingPEMPrivateFormatPKCS8NoEncryptiondecodeNameNameAttributeCOMMON_NAMESubjectAlternativeNameDNSNamesocketgethostbynamegethostnamer   r   datetimeutcnowCertificateBuildersubject_nameissuer_nameadd_extension
public_keyserial_numberrandom_serial_numbernot_valid_beforenot_valid_after	timedeltasignSHA256public_bytes)r   r   r   r	   r
   r   keykey_contentsray_interalaltnamesnowcertcert_contentss                j/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/_private/tls_utils.pygenerate_self_signed_tls_certsrB      s   


%%%%%%@@@@@@HHHHHHHHAAAAAA1111111 
 
 
3
 
 	


 
"
"oo6G6G #  C $$'+*0*7799 %   fhh	  ))T//0C^TTUVVK**LL$V%7%9%9::  LL)++,,LL9;;<<LL%%	
	 	H 

"
"
$
$C!!	k	"	"	[	!	!	x%	0	0	CNN$$	%	%	t0022	3	3		#			x1s;;;;	<	<	c6==??OO$5$5	6	6 	 %%m&<&@AAHHJJM,&&s    # =c                 &   dd l }t          j                            dd                                          dv rEt                      \  }}}|                    ||fg||d u          }|                     ||          S |                     |          S )Nr   RAY_USE_TLS0)1true)root_certificatesrequire_client_auth)	grpcosenvirongetlowerload_certs_from_envssl_server_credentialsadd_secure_portadd_insecure_port)serveraddressrJ   server_cert_chainprivate_keyca_certcredentialss          rA   add_port_to_grpc_serverrY   A   s    KKK	z~~mS))//11]BB2E2G2G/;11,-.% 't 3 2 
 

 %%g{;;;''000    c                  ,   g d} t          d | D                       rt          d          t          t          j        d         d          5 }|                                }d d d            n# 1 swxY w Y   t          t          j        d         d          5 }|                                }d d d            n# 1 swxY w Y   t          t          j        d         d          5 }|                                }d d d            n# 1 swxY w Y   |||fS )N)RAY_TLS_SERVER_CERTRAY_TLS_SERVER_KEYRAY_TLS_CA_CERTc              3   2   K   | ]}|t           j        vV  d S )N)rK   rL   ).0vs     rA   	<genexpr>z&load_certs_from_env.<locals>.<genexpr>R   s)      
5
511BJ
5
5
5
5
5
5rZ   zIf the environment variable RAY_USE_TLS is set to true then RAY_TLS_SERVER_CERT, RAY_TLS_SERVER_KEY and RAY_TLS_CA_CERT must also be set.r\   rbr]   r^   )anyRuntimeErroropenrK   rL   read)tls_env_varsfrU   rV   rW   s        rA   rO   rO   P   s   SSSL

5
5
5
5
555 
0
 
 	
 
bj./	6	6 %!FFHH% % % % % % % % % % % % % % %	bj-.	5	5 ffhh              	bj*+T	2	2 a&&((               k722s6   A..A25A2B::B>B>%DD
D
)	r+   rK   r(   ray._common.network_utilsr   r   rB   rY   rO    rZ   rA   <module>rl      s     				        3' 3' 3'l1 1 13 3 3 3 3rZ   