
    @OOf                         d dl mZmZ d dlmZ d dlmZ d dlmZ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 d
Ze G d d             Zy)    )	dataclassfield)PathLike)split)AnyListOptionalTextIOUnion   )CipherSuiteSessionTicketload_pem_private_keyload_pem_x509_certificates   )
QuicLogger)QuicProtocolVersioni  c            
       b   e Zd ZU dZdZeee      ed<   	 dZ	eed<   	 dZ
eed<   	 dZeed	<   	 d
Zeed<   	 dZeed<   	 eZeed<   	 dZeed<   	 dZee   ed<   	 dZeed<   	 dZee   ed<   	 dZee   ed<   	 dZeed<   	 dZee   ed<   dZee   ed<   dZee   ed<   dZ e!ed<    e"e#      Z$ee!   ed<   dZ%eee&      ed<   dZ'eed<   dZ(ee   ed<   dZ)e!ed <   d!Z*eed"<    e"d#       Z+ee   ed$<   dZ,ee   ed%<   	 	 d,d&e-d'ee-   d(ee.eef      d)dfd*Z/	 	 	 d-dee   dee   dee   d)dfd+Z0y).QuicConfigurationz
    A QUIC configuration.
    Nalpn_protocolsrenocongestion_control_algorithm   connection_id_lengthg      N@idle_timeoutT	is_clienti   max_datamax_datagram_sizemax_stream_dataquic_loggersecrets_log_fileserver_namesession_ticket    tokencadatacafilecapathcertificate)default_factorycertificate_chaincipher_suitesg?initial_rttmax_datagram_frame_sizeprivate_keyFquantum_readiness_testc                      t         j                  t         j                  t         j                  t         j                  t         j
                  gS )N)r   	VERSION_1DRAFT_32DRAFT_31DRAFT_30DRAFT_29 r$   [/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/aioquic/quic/configuration.py<lambda>zQuicConfiguration.<lambda>r   s6    ))((((((((!
 r$   supported_versionsverify_modecertfilekeyfilepasswordreturnc                    t        |d      5 }d}t        d|z   |j                               }t        |d         }t	        |      dk(  r||d   z   }t        |      | _        ddd       d   | _        |dd | _        |Wt        |d      5 }t        |j                         t        |t              r|j                  d      n|	      | _        ddd       yy# 1 sw Y   wxY w# 1 sw Y   yxY w)
zG
        Load a private key and the corresponding certificate.
        rbs   -----BEGIN PRIVATE KEY-----
   
r   r   r   Nutf8)r>   )openr   readr   lenr   r/   r)   r+   
isinstancestrencode)	selfr<   r=   r>   fpboundarychunkscertificatesr/   s	            r8   load_cert_chainz!QuicConfiguration.load_cert_chain|   s     (D! 	ER7H58+RWWY7F5fQi@L6{a&2#7#D 	E (?!-ab!1gt$ #7GGI!(C0 &__V4!	$   	E 	E s   ACAC#C #C,c                 .    || _         || _        || _        y)z
        Load a set of "certification authority" (CA) certificates used to
        validate other peers' certificates.
        N)r'   r(   r&   )rJ   r'   r(   r&   s       r8   load_verify_locationsz'QuicConfiguration.load_verify_locations   s     r$   )NN)NNN)1__name__
__module____qualname____doc__r   r	   r   rH   __annotations__r   r   intr   floatr   boolr   SMALLEST_MAX_DATAGRAM_SIZEr   r   r    r   r!   r
   r"   r#   r   r%   bytesr&   r'   r(   r)   r   r   listr+   r,   r   r-   r.   r/   r0   r:   r;   r   r   rO   rQ   r7   r$   r8   r   r      s>    +/NHT#Y'. )/ #. !"#! L% It Hc 8s7 #OS" )-K*%,  $f# "&K#% /3NH]+2 E5 #FHUO" FHSM  FHSM K#(#>tCy>15M8D-.5K-1Xc]1K#(D($)
%S	  "&K#%
 '+04	 (# 5,-	
 
< !% $"&	  	
 
r$   r   N)dataclassesr   r   osr   rer   typingr   r   r	   r
   r   tlsr   r   r   r   loggerr   packetr   rZ   r   r7   r$   r8   <module>rd      sH    (   5 5   '!  Q Q Qr$   