*j ` S r SSKrSSKrSSKJr SSKJrJr J r SSKJr SSK r SSK JrJrJr SSK JrJrJr SSK JrJrJrJrJrJrJr SS K JrJr SS K JrJ r J!r! SSK J"r" SSK J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r. SS K J/r/J0r0 \ Rb " S\2S \ S9 \Rb " S\2S \ S9 \ Rb " S\2S \ S9 \ Rb " S\2S \ S9 \Rb " S\2S \ S9 \ Rb " S\2S \ S9 \3Rh =r5\3l5 \3Rl Ro 5 V Vs0 s H u pX_M snn r8\9" \3SS5 r:\" \ 5 " S S5 5 r;\" \ 5 " S S5 5 r<\" \ 5 " S S!5 5 r=\" \ 5 " S" S#5 5 r>\R~ S$:X a SS%K J@r@JArA SS&KBJBrBJCrCJDrD SS'KBJErEJFrFJGrG SSKBrHSSKIrISSKJrJSSKKrK\LrMS(/rN\O" \ S)5 rP\/rQ\rRS* rSS+ rTS, rU\" S-S.5 rVS/ rW " S0 S1\" S1S25 5 rX " S3 S4\X\5 rY " S5 S6\5 rZ\YR 4SSSS7.S8 jjr\SH\]S9\YR SSSSSS:.S; jjr^\\r_\^r` " S< S=5 raS> rb " S? S@\B5 rc\c\Zld \a\Zle SA rfSBrgSCrhSD riSE rj\kS\G4SF jrlSG rmg! \# a GNBf = fs snn f )Ia This module provides some more Pythonic support for SSL. Object types: SSLSocket -- subtype of socket.socket which does SSL over the socket Exceptions: SSLError -- exception raised for I/O errors Functions: cert_time_to_seconds -- convert time string used for certificate notBefore and notAfter functions to integer seconds past the Epoch (the time values returned from time.time()) get_server_certificate (addr, ssl_version, ca_certs, timeout) -- Retrieve the certificate from the server at the specified address and return it as a PEM-encoded string Integer constants: SSL_ERROR_ZERO_RETURN SSL_ERROR_WANT_READ SSL_ERROR_WANT_WRITE SSL_ERROR_WANT_X509_LOOKUP SSL_ERROR_SYSCALL SSL_ERROR_SSL SSL_ERROR_WANT_CONNECT SSL_ERROR_EOF SSL_ERROR_INVALID_ERROR_CODE The following group define certificate requirements that one side is allowing/requiring from the other side: CERT_NONE - no certificates from the other side are required (or will be looked at if provided) CERT_OPTIONAL - certificates are not required, but if provided will be validated, and if validation fails, the connection will also fail CERT_REQUIRED - certificates are required, and will be validated, and if validation fails, the connection will also fail The following constants identify various SSL protocol variants: PROTOCOL_SSLv2 PROTOCOL_SSLv3 PROTOCOL_SSLv23 PROTOCOL_TLS PROTOCOL_TLS_CLIENT PROTOCOL_TLS_SERVER PROTOCOL_TLSv1 PROTOCOL_TLSv1_1 PROTOCOL_TLSv1_2 The following constants identify various SSL alert message descriptions as per http://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-6 ALERT_DESCRIPTION_CLOSE_NOTIFY ALERT_DESCRIPTION_UNEXPECTED_MESSAGE ALERT_DESCRIPTION_BAD_RECORD_MAC ALERT_DESCRIPTION_RECORD_OVERFLOW ALERT_DESCRIPTION_DECOMPRESSION_FAILURE ALERT_DESCRIPTION_HANDSHAKE_FAILURE ALERT_DESCRIPTION_BAD_CERTIFICATE ALERT_DESCRIPTION_UNSUPPORTED_CERTIFICATE ALERT_DESCRIPTION_CERTIFICATE_REVOKED ALERT_DESCRIPTION_CERTIFICATE_EXPIRED ALERT_DESCRIPTION_CERTIFICATE_UNKNOWN ALERT_DESCRIPTION_ILLEGAL_PARAMETER ALERT_DESCRIPTION_UNKNOWN_CA ALERT_DESCRIPTION_ACCESS_DENIED ALERT_DESCRIPTION_DECODE_ERROR ALERT_DESCRIPTION_DECRYPT_ERROR ALERT_DESCRIPTION_PROTOCOL_VERSION ALERT_DESCRIPTION_INSUFFICIENT_SECURITY ALERT_DESCRIPTION_INTERNAL_ERROR ALERT_DESCRIPTION_USER_CANCELLED ALERT_DESCRIPTION_NO_RENEGOTIATION ALERT_DESCRIPTION_UNSUPPORTED_EXTENSION ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE ALERT_DESCRIPTION_UNRECOGNIZED_NAME ALERT_DESCRIPTION_BAD_CERTIFICATE_STATUS_RESPONSE ALERT_DESCRIPTION_BAD_CERTIFICATE_HASH_VALUE ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY N) namedtuple)EnumIntEnumIntFlag)_simple_enum)OPENSSL_VERSION_NUMBEROPENSSL_VERSION_INFOOPENSSL_VERSION)_SSLContext MemoryBIO SSLSession)SSLErrorSSLZeroReturnErrorSSLWantReadErrorSSLWantWriteErrorSSLSyscallErrorSSLEOFErrorSSLCertVerificationError)txt2objnid2obj)RAND_statusRAND_add RAND_bytes)RAND_egd)HAS_SNIHAS_ECDHHAS_NPNHAS_ALPN HAS_SSLv2 HAS_SSLv3 HAS_TLSv1HAS_TLSv1_1HAS_TLSv1_2HAS_TLSv1_3HAS_PSK)_DEFAULT_CIPHERS_OPENSSL_API_VERSION _SSLMethodc <