[issue32813] SSL shared_ciphers implementation wrong - returns configured but not shared ciphers

2018-02-10 Thread Steffen Ullrich
Steffen Ullrich added the comment: It looks like the function shared_ciphers actually returned the list of client ciphers when initially implemented although I think that the name is misleading and suggests that it would return the ciphers shared between client and server (i.e. same meaning

[issue32813] SSL shared_ciphers implementation wrong - returns configured but not shared ciphers

2018-02-10 Thread Steffen Ullrich
Steffen Ullrich added the comment: Actually, it looks like that neither SSL_get_shared ciphers nor SSL_get_client_ciphers nor accessing ssl->session->ciphers nor SSL_get_ciphers return the **shared** ciphers. The first three seem to return the ciphers offered by the client and the la

[issue32813] SSL shared_ciphers implementation wrong - returns configured but not shared ciphers

2018-02-09 Thread Steffen Ullrich
New submission from Steffen Ullrich : The current implementation of shared_ciphers uses the SSL_get_ciphers method. This method returns the list of configured ciphers (i.e. from the context) and not the list of ciphers shared between client and server. To get this list one can use the

[issue28938] match_hostname treats SAN IP address as DNS name and fails to check CN then

2016-12-11 Thread Steffen Ullrich
Steffen Ullrich added the comment: On Sun, Dec 11, 2016 at 08:26:32PM +, Christian Heimes wrote: > > Christian Heimes added the comment: > > Python's implementation of host name verification conforms to RFC 6125, > section 6.4.4. The CN check is optional (MAY

[issue28938] match_hostname treats SAN IP address as DNS name and fails to check CN then

2016-12-11 Thread Steffen Ullrich
New submission from Steffen Ullrich: from Lib/ssl.py 303elif key == 'IP Address': 304if host_ip is not None and _ipaddress_match(value, host_ip): 305return 306dnsnames.append(value) 307if not dnsnames: 308# The subject is on

[issue21430] Document ssl.pending()

2014-05-17 Thread Steffen Ullrich
Steffen Ullrich added the comment: > What's the point of checking? Just call SSL_read() and catch the > SSL_ERROR_WANT_{READ,WRITE} to determine that no data is available; as a > bonus it also tells you whether you have to select() for read or for write. A common scenario wit

[issue21430] Document ssl.pending()

2014-05-17 Thread Steffen Ullrich
Steffen Ullrich added the comment: Data transport in SSL is not done with plain TCP, but with encoded frames inside TCP. To get decoded data one has to first receive the full frame, even if one is only interested in the first bytes. Example: - server does an SSL_write with 200 bytes. This