Your IP : 216.73.217.129
B
� f+ � @ s� d dl Z d dlZd dlZd dlZdd� Zedkr�eej�dk r^ej� dejd � e�
d� x<ejdd� D ]*Ze�d�\Z
Zejj� ee
ee��� qnW e�
d � dS ) � Nc sp dd� � d
� fdd� }dddd| |f d g}� |�\}}|d
krPt d||f ��||�}|sltd| |f ��|S )Nc S sB ddl m}m}m}m} || |||d�}|�� }|j�� }||fS )Nr )�Popen�PIPE�STDOUT�DEVNULL)�stdout�stderr�stdin)�
subprocessr r r r �waitr �read)�cmdr r r r �proc�status�output� r �I/opt/alt/python37/lib64/python3.7/Tools/scripts/get-remote-certificate.py�subproc s
z)fetch_server_certificate.<locals>.subprocc
s� t �d| t jt jB �}|sd S t�� }t|d�}|�|�d�d � |� � zh|pXt�� }ddd|d|g}� |�\}}|d kr�t
d
||f ��t|d�}|�� } |� � t�
|� | S t�
|� X d S )NsC ^([-]+BEGIN CERTIFICATE[-]+[\r]*\n.*[\r]*^[-]+END CERTIFICATE[-]+)$�wb� �
�opensslZx509z-inz-outr z1OpenSSL x509 failed with status %s and output: %r�rb)�re�search� MULTILINE�DOTALL�tempfileZmktemp�open�write�group�close�RuntimeErrorr �os�unlink)
Zcertfile_contentsZoutfile�mZtn�fpZtn2r r r �data)r r r �strip_to_x509_cert s*
z4fetch_server_certificate.<locals>.strip_to_x509_certr Zs_clientz-connectz%s:%sz
-showcertsr z4OpenSSL connect failed with status %s and output: %rz.Invalid response received from server at %s:%s)N)r! �
ValueError)�host�portr'