
    )j	                          d dl Z d Zd Zd ZdS )    Nc                 n    t          j        t           j                  }|                    | |           |S )N)ssl
SSLContextPROTOCOL_TLS_SERVERload_cert_chain)	cert_file	pkey_filecontexts      L/DATA/AppData/hermes/venv/lib/python3.11/site-packages/wslink/ssl_context.pyload_ssl_contextr      s/    nS455GIy111N    c           	      T   dd l }dd l}dd l}ddlm} |                                \  }}|                                \  }}	|                    |j        |	           |                    |j        |           |                    || 	                    |j
        j                             |                    ||                    |j
        j        |j        j        |                                                     |                    |           |                    |           ||	fS )Nr   )serialization)encodingformatencryption_algorithm)atexitostempfilecryptography.hazmat.primitivesr   mkstempregisterremovewritepublic_bytesEncodingPEMprivate_bytesPrivateFormatTraditionalOpenSSLNoEncryptionclose)
certpkeyr   r   r   r   cert_handler   pkey_handler	   s
             r   save_ssl_filesr'   
   s2   MMMIIIOOO<<<<<<%--//K%--//K
OOBIy)))
OOBIy)))HH[$++M,B,FGGHHHHH"+/ .A!.!;!;!=!= 	 	
 	
   HH[HH[ir   c                    	 dd l }ddlm} ddlm} ddlm} ddlm} n # t          $ r d}t          |          d w xY wd|  d|  }|                    d	d
          }|                    |                    |j        d          |                    |j        |          g          }	|                    ddd          }
|                                                    |	                              |	                              |                                                              |                                                              |j                                         |
z
                                |j                                         |
dz  z                                 |                    |j        g          d                              |                    |                    |          g          d                              ||                                           }tC          ||          S )Nr   )x509)hashes)rsa)NameOIDz<Using ad-hoc certificates requires the cryptography library.z*.z/CN=i  i   )public_exponentkey_sizezDummy Certificate   im  F)critical)private_key	algorithm)"datetimecryptographyr)   r   r*   )cryptography.hazmat.primitives.asymmetricr+   cryptography.x509.oidr,   ImportError	TypeErrorgenerate_private_keyNameNameAttributeORGANIZATION_NAMECOMMON_NAME	timedeltaCertificateBuildersubject_nameissuer_name
public_keyserial_numberrandom_serial_numbernot_valid_beforetodaynot_valid_afteradd_extensionExtendedKeyUsageOID_SERVER_AUTHSubjectAlternativeNameDNSNamesignSHA256r'   )hostr3   r)   r*   r+   r,   msgcnr$   subjectone_dayr#   s               r   generate_ssl_pairrT   %   s:   	'%%%%%%999999AAAAAA1111111 ' ' 'Lnn$&' 
d				B##ED#IIDiiw8:MNNw2B77	
 G   Aq))G!!	g			W			DOO%%	&	&	t0022	3	3		(+1133g=	>	>	*0022gmD	E	E	t,,d.B-CDDu	U	U	t22DLL4D4D3EFFQV	W	W	$&--//	:	: 	 $%%%s    <)r   r   r'   rT    r   r   <module>rV      sE    



       6 &  &  &  &  &r   