← Back
Editing: test_sslverify.cpython-38.pyc
U s�@g�� � @ s� d Z ddlmZmZ ddlZddlZddlZddlmZ ddl m Z dZdZdZ dZe d��rxddlZddlmZ ddlmZ dd lmZ dd lmZmZ ddlmZmZ ddlmZ dd lmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddl"m'Z' ze�(ej)�Z*e*�+dd� � W n e,k �r: dZ Y nX ze�(ej)�Z*e*�-dd� � W n e,k �rt dZY nX ndZeZeZ eZddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z< dd lm=Z=m>Z>m?Z? dd!l@mAZA dd"l2mBZBmCZC dd#lmDZD dd$lEmFZF e�sVdd%lGmHZHmIZI dd&lmJZK dd'lLmMZM d(ZNd)ZOe9eP�jQ�Rd*��S� ZTe�U� fd+d,�ZVd-d.� ZWdzd0d1�ZXd2d3� ZYd{d4d5�ZZd|d6d7�Z[d8d9� Z\G d:d;� d;e=j]�Z^G d<d=� d=e=j]�Z_G d>d?� d?e`�ZaG d@dA� dAe;jb�ZcG dBdC� dCe`�ZdG dDdE� dEe`�ZeG dFdG� dGeee;jf�ZgG dHdI� dIe;jb�ZhG dJdK� dKe;jf�ZiG dLdM� dMe;jb�Zjd}dNdO�ZkG dPdQ� dQe;jf�ZlG dRdS� dSe;jf�ZmG dTdU� dUe;jf�ZnG dVdW� dW�ZoG dXdY� dY�ZpG dZd[� d[�ZqG d\d]� d]e;jf�ZrG d^d_� d_e;jf�ZsG d`da� dae;jf�ZtG dbdc� dce;jf�ZuG ddde� dee;jf�ZvG dfdg� dge;jf�ZwG dhdi� die`�ZxG djdk� dke`�ZyG dldm� dme;jf�ZzG dndo� doe`�Z{G dpdq� dqe`�Z|G drds� dse;jb�Z}G dtdu� due;jb�Z~G dvdw� dwe;jf�ZG dxdy� dye;jb�Z�dS )~z+ Tests for L{twisted.internet._sslverify}. � )�division�absolute_importN)�implementer)� requireModule�OpenSSL)�ssl)�SSL)�get_elliptic_curves)�PKey�X509)�TYPE_RSA�FILETYPE_PEM)�x509)�default_backend)�hashes)�rsa)� PrivateFormat�NoEncryption)�NameOID)�Encodingc C s d S �N� ��cr r �=/usr/lib/python3/dist-packages/twisted/test/test_sslverify.py�<lambda>. � r z1OpenSSL 1.0.1 or greater required for NPN supportc C s d S r r r r r r r 4 r z2OpenSSL 1.0.2 or greater required for ALPN supportz"OpenSSL is required for SSL tests.)�SetAsideModule)�connectedServerAndClient)�ConnectionClosed)�nativeString)�FilePath)� getModule)�unittest�util)�protocol�defer�reactor)� _idnaText)�CertificateError�ConnectionLost)� interfaces)�Version)� platformTrust�VerificationError)� _sslverify)�TLSMemoryBIOFactorya� -----BEGIN CERTIFICATE----- MIIC2jCCAkMCAjA5MA0GCSqGSIb3DQEBBAUAMIG0MQswCQYDVQQGEwJVUzEiMCAG A1UEAxMZZXhhbXBsZS50d2lzdGVkbWF0cml4LmNvbTEPMA0GA1UEBxMGQm9zdG9u MRwwGgYDVQQKExNUd2lzdGVkIE1hdHJpeCBMYWJzMRYwFAYDVQQIEw1NYXNzYWNo dXNldHRzMScwJQYJKoZIhvcNAQkBFhhub2JvZHlAdHdpc3RlZG1hdHJpeC5jb20x ETAPBgNVBAsTCFNlY3VyaXR5MB4XDTA2MDgxNjAxMDEwOFoXDTA3MDgxNjAxMDEw OFowgbQxCzAJBgNVBAYTAlVTMSIwIAYDVQQDExlleGFtcGxlLnR3aXN0ZWRtYXRy aXguY29tMQ8wDQYDVQQHEwZCb3N0b24xHDAaBgNVBAoTE1R3aXN0ZWQgTWF0cml4 IExhYnMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxJzAlBgkqhkiG9w0BCQEWGG5v Ym9keUB0d2lzdGVkbWF0cml4LmNvbTERMA8GA1UECxMIU2VjdXJpdHkwgZ8wDQYJ KoZIhvcNAQEBBQADgY0AMIGJAoGBAMzH8CDF/U91y/bdbdbJKnLgnyvQ9Ig9ZNZp 8hpsu4huil60zF03+Lexg2l1FIfURScjBuaJMR6HiMYTMjhzLuByRZ17KW4wYkGi KXstz03VIKy4Tjc+v4aXFI4XdRw10gGMGQlGGscXF/RSoN84VoDKBfOMWdXeConJ VyC4w3iJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAviMT4lBoxOgQy32LIgZ4lVCj JNOiZYg8GMQ6y0ugp86X80UjOvkGtNf/R7YgED/giKRN/q/XJiLJDEhzknkocwmO S+4b2XpiaZYxRyKWwL221O7CGmtWYyZl2+92YYmmCiNzWQPfP6BOMlfax0AGLHls fXzCWdG0O/3Lk2SRM0I= -----END CERTIFICATE----- a� -----BEGIN CERTIFICATE----- MIIC3jCCAkcCAjA6MA0GCSqGSIb3DQEBBAUAMIG2MQswCQYDVQQGEwJVUzEiMCAG A1UEAxMZZXhhbXBsZS50d2lzdGVkbWF0cml4LmNvbTEPMA0GA1UEBxMGQm9zdG9u MRwwGgYDVQQKExNUd2lzdGVkIE1hdHJpeCBMYWJzMRYwFAYDVQQIEw1NYXNzYWNo dXNldHRzMSkwJwYJKoZIhvcNAQkBFhpzb21lYm9keUB0d2lzdGVkbWF0cml4LmNv bTERMA8GA1UECxMIU2VjdXJpdHkwHhcNMDYwODE2MDEwMTU2WhcNMDcwODE2MDEw MTU2WjCBtjELMAkGA1UEBhMCVVMxIjAgBgNVBAMTGWV4YW1wbGUudHdpc3RlZG1h dHJpeC5jb20xDzANBgNVBAcTBkJvc3RvbjEcMBoGA1UEChMTVHdpc3RlZCBNYXRy aXggTGFiczEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEpMCcGCSqGSIb3DQEJARYa c29tZWJvZHlAdHdpc3RlZG1hdHJpeC5jb20xETAPBgNVBAsTCFNlY3VyaXR5MIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnm+WBlgFNbMlHehib9ePGGDXF+Nz4 CjGuUmVBaXCRCiVjg3kSDecwqfb0fqTksBZ+oQ1UBjMcSh7OcvFXJZnUesBikGWE JE4V8Bjh+RmbJ1ZAlUPZ40bAkww0OpyIRAGMvKG+4yLFTO4WDxKmfDcrOb6ID8WJ e1u+i3XGkIf/5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAD4Oukm3YYkhedUepBEA vvXIQhVDqL7mk6OqYdXmNj6R7ZMC8WWvGZxrzDI1bZuB+4aIxxd1FXC3UOHiR/xg i9cDl1y8P/qRp4aEBNF6rI0D4AxTbfnHQx4ERDAOShJdYZs/2zifPJ6va6YvrEyr yqDtGhklsWW3ZwBzEh5VEOUp -----END CERTIFICATE----- z server.pemc C s t | �S )zQ Each time we're called, return the next integer in the natural numbers. )�next)�counterr r r r2 � s r2 c K s� t � }|�td� t� }|�d� |�d� |�� |�� fD ]&}| �� D ]\}}t ||t |�� qHq<|�t� � |� |� |�|d� ||fS )Ni r i�3�Zmd5)r Zgenerate_keyr r Zgmtime_adj_notBeforeZgmtime_adj_notAfterZ get_issuer�get_subject�items�setattrr Zset_serial_numberr2 Z set_pubkey�sign)�kwZkeypair�certificateZxname�k�vr r r �makeCertificate� s r; �example.comc C s� t �t �tjd�g�}t �t �tjd�g�}t�ddd�}tjddt � d�}|� � }t �� �|�� |��tj�� | ��tj�� | ��t �� �� |�jt jdd d �dd�j|t�� t � d�}tjddt � d�}|� � }zt�| �} W n" tk �r t �| �g} Y nX t �| �g} t �� �|�� |��tj�� | ��tj�� | ��t �� �� |�jt jd dd �dd�jt �| �dd�j|t�� t � d�}tj� |�!t"j#��}tj$� d�%|�&t"j#t'j(t)� �|�!t"j#�g��} || fS )a~ Create a self-signed CA certificate and server certificate signed by the CA. @param serviceIdentity: The identity (hostname) of the server. @type serviceIdentity: L{unicode} @return: a 2-tuple of C{(certificate_authority_certificate, server_certificate)} @rtype: L{tuple} of (L{sslverify.Certificate}, L{sslverify.PrivateCertificate}) zTesting Example CAzTesting Example Server� r i i )Zpublic_exponentZkey_size�backendT� )ZcaZpath_length)Zcritical)Zprivate_key� algorithmr>