
    mbi                    h    d dl mZ d dlZddlmZmZ ddlmZmZ ddl	m
Z
 ddZ G d d          ZdS )    )annotationsN   )BufferRsa)pull_opaquepush_opaque   )NetworkAddressaddrr
   returnbytesc                    t          j        | d                   j        t          | d         dz	  | d         dz  g          z   S )Nr   r	         )	ipaddress
ip_addresspackedr   )r   s    ^/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/qh3/quic/retry.pyencode_addressr   
   s=    Q((/%aAtAwQU~8V2W2WWW    c                  &    e Zd ZddZdd	ZddZdS )QuicRetryTokenHandlerr   Nonec                0    t          d          | _        d S )Ni   )key_size)r   _key)selfs    r   __init__zQuicRetryTokenHandler.__init__   s    &&&			r   r   r
   "original_destination_connection_idr   retry_source_connection_idc                    t          d          }t          |dt          |                     t          |d|           t          |d|           | j                            |j                  S )Ni   )capacityr	   )r   r   r   r   encryptdata)r   r   r   r    bufs        r   create_tokenz"QuicRetryTokenHandler.create_token   sl     c"""CN400111C>???C6777y  ***r   tokentuple[bytes, bytes]c                F   |rt          |          dk    rt          d          t          | j                            |                    }t          |d          }t          |d          }t          |d          }|t          |          k    rt          d          ||fS )N   z,Ciphertext length must be equal to key size.)r$   r	   zRemote address does not match.)len
ValueErrorr   r   decryptr   r   )r   r   r'   r%   encoded_addrr   r    s          r   validate_tokenz$QuicRetryTokenHandler.validate_token   s     	ME

c))KLLL$)++E22333"3**-8a-@-@*%0a%8%8">$////=>>>13MMMr   N)r   r   )r   r
   r   r   r    r   r   r   )r   r
   r'   r   r   r(   )__name__
__module____qualname__r   r&   r/    r   r   r   r      sV        ' ' ' '
+ 
+ 
+ 
+	N 	N 	N 	N 	N 	Nr   r   )r   r
   r   r   )
__future__r   r   _hazmatr   r   tlsr   r   
connectionr
   r   r   r3   r   r   <module>r8      s    " " " " " "     ! ! ! ! ! ! ! ! * * * * * * * * & & & & & &X X X XN N N N N N N N N Nr   