
    mbi=                        d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZ e
rddlmZ ddlmZmZmZmZ dd	lmZmZmZmZ d
dlmZ d
dlmZ e G d d                      ZdS )    )annotations)	dataclassfield)PathLike)split)TYPE_CHECKINGTextIO   )Certificate)DsaPrivateKeyEcPrivateKeyEd25519PrivateKeyRsaPrivateKey)CipherSuiteSessionTicketload_pem_private_keyload_pem_x509_certificates   )
QuicLogger)QuicProtocolVersionc                     e Zd ZU dZdZded<   	 dZded<   	 dZd	ed
<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   dZded<   dZded<   dZded<   dZded<   dZded <   dZd!ed"<    ee#          Zd$ed%<   dZd&ed'<   d(Zd	ed)<   dZd*ed+<   dZd*ed,<   dZd-ed.<   dZded/<    ed0 #          Zd1ed2<   dZ d*ed3<   	 	 d>d?d<Z!	 	 	 d@dAd=Z"dS )BQuicConfigurationz
    A QUIC configuration.
    Nzlist[str] | Nonealpn_protocols   intconnection_id_lengthg      N@floatidle_timeoutTbool	is_clienti   max_datamax_stream_datazQuicLogger | Nonequic_loggerr	   secrets_log_file
str | Noneserver_namezSessionTicket | Nonesession_ticketFhostname_checks_common_nameassert_fingerprintverify_hostnamebytes | NonecadatacafilecapathzX509Certificate | Nonecertificate)default_factoryzlist[X509Certificate]certificate_chainzlist[CipherSuite] | Nonecipher_suitesg?initial_rttz
int | Nonemax_datagram_frame_sizeoriginal_versionzGEcPrivateKey | Ed25519PrivateKey | DsaPrivateKey | RsaPrivateKey | Noneprivate_keyquantum_readiness_testc                 2    t           j        t           j        gS )N)r   	VERSION_1	VERSION_2     f/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/qh3/quic/configuration.py<lambda>zQuicConfiguration.<lambda>k   s    ))!
 r<   z	list[int]supported_versionsverify_modecertfilestr | bytes | PathLikekeyfilestr | bytes | PathLike | Nonepasswordbytes | str | NonereturnNonec                   t          |t                    r|                                }n6t          |t                    r!t          |                                          }|`t          |t                    r|                                }n6t          |t                    r!t          |                                          }d|vrzt	          |d          5 }|                                }ddd           n# 1 swxY w Y   |<t	          |d          5 }|                                }ddd           n# 1 swxY w Y   d|v }|sdnd}t          d|z   |          }t          |d                   }t          |          d	k    r||d
         z   }	t          |	          | _
        |d         | _        |d
d         | _        |Bt          |t          |t                    r|                    d          n|          | _
        dS dS )zG
        Load a private key and the corresponding certificate.
        Ns
   -----BEGINrbs   -----
s   -----BEGIN PRIVATE KEY-----
s   -----BEGIN PRIVATE KEY-----
   
r   r
   r   utf8)rE   )
isinstancestrencoder   openreadr   r   lenr   r6   r/   r1   )
selfrA   rC   rE   fpis_crlfboundarychunkscertificatesr6   s
             r=   load_cert_chainz!QuicConfiguration.load_cert_chainr   s{    h$$ 	.((HH(++ 	.8}}++--H'3'' 0!..**GX.. 0g,,--// ((h%% %7799% % % % % % % % % % % % % % %"'4(( (B ggiiG( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (* 4,,3 	
 ux'221&)<<v;;!"VAY.K3K@@D'?!-abb!13/9(C/H/HVHOOF+++h     D s$   C88C<?C<D66D:=D:c                0    || _         || _        || _        dS )z
        Load a set of "certification authority" (CA) certificates used to
        validate other peers' certificates.
        N)r-   r.   r,   )rS   r-   r.   r,   s       r=   load_verify_locationsz'QuicConfiguration.load_verify_locations   s     r<   )NN)rA   rB   rC   rD   rE   rF   rG   rH   )NNN)r-   r%   r.   r%   r,   r+   rG   rH   )#__name__
__module____qualname____doc__r   __annotations__r   r   r    r!   r"   r#   r$   r&   r'   r(   r)   r*   r,   r-   r.   r/   r   listr1   r2   r3   r4   r5   r6   r7   r?   r@   rY   r[   r;   r<   r=   r   r      s          (,N++++ !"!!!! L I H #O"""" &*K))))  $#### #K"""" ,0N//// ).----%))))) O    FFF*.K..../4uT/J/J/JJJJJ.2M2222K*.....#''''' 	      $)(((($)E
 
% % %     #K""""
 26'+	4 4 4 4 4p "!#	      r<   r   N)
__future__r   dataclassesr   r   osr   rer   typingr   r	   _hazmatr   X509Certificater   r   r   r   tlsr   r   r   r   loggerr   packetr   r   r;   r<   r=   <module>rl      sT   " " " " " " ( ( ( ( ( ( ( (             ( ( ( ( ( ( ( ( X888888WWWWWWWWWWWW                  ' ' ' ' ' ' ] ] ] ] ] ] ] ] ] ]r<   