Skip to content

Commit

Permalink
differentiated the two functions. Updated docs, and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ihamburglar committed May 27, 2015
1 parent 6452207 commit 6a9f27b
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 12 deletions.
6 changes: 4 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
2015-04-15 Jim Shaver <[email protected]>

* OpenSSL/SSL.py, : Add ``get_protocol_version()`` to Connection
* OpenSSL/SSL.py, : Add ``get_protocol_version()`` and
``get_protocol_version_name()`` to Connection
Based on work from Rich Moore
* OpenSSL/test/test_crypto.py: tests for ``get_protocol_version``
* OpenSSL/test/test_crypto.py: tests for ``get_protocol_version()``
and ``get_protocol_version_name()``

2015-04-15 Paul Kehrer <[email protected]>

Expand Down
8 changes: 4 additions & 4 deletions OpenSSL/SSL.py
Original file line number Diff line number Diff line change
Expand Up @@ -1883,16 +1883,16 @@ def get_cipher_version(self):
return version.decode("utf-8")


def get_protocol_version(self):
def get_protocol_version_name(self):
"""
Obtain the protocol version of the current connection.
:returns: The TLS version of the current connection, for example
the value for TLS 1.2 would be ``TLSv1.2``.
the value for TLS 1.2 would be ``b'TLSv1.2'``.
:rtype: :py:class:`unicode`
"""
version = _ffi.string(_lib.SSL_get_version(self._ssl))
return version.decode("utf-8")
version = _lib.SSL_get_version(self._ssl)
return version


@_requires_npn
Expand Down
21 changes: 18 additions & 3 deletions OpenSSL/test/test_ssl.py
Original file line number Diff line number Diff line change
Expand Up @@ -2745,17 +2745,32 @@ def test_get_cipher_bits(self):
self.assertEqual(server_cipher_bits, client_cipher_bits)


def test_get_protocol_version_name(self):
"""
:py:obj:`Connection.get_protocol_version_name()` returns a string
giving the protocol version of the current connection.
"""
server, client = self._loopback()
client_protocol_version_name = client.get_protocol_version_name()
server_protocol_version_name = server.get_protocol_version_name()

self.assertIsInstance(server_protocol_version_name, bytes)
self.assertIsInstance(client_protocol_version_name, bytes)

self.assertEqual(server_protocol_version_name, client_protocol_version_name)


def test_get_protocol_version(self):
"""
:py:obj:`Connection.get_protocol_version()` returns a string
:py:obj:`Connection.get_protocol_version()` returns an integer
giving the protocol version of the current connection.
"""
server, client = self._loopback()
client_protocol_version = client.get_protocol_version()
server_protocol_version = server.get_protocol_version()

self.assertIsInstance(server_protocol_version, text_type)
self.assertIsInstance(client_protocol_version, text_type)
self.assertIsInstance(server_protocol_version, int)
self.assertIsInstance(client_protocol_version, int)

self.assertEqual(server_protocol_version, client_protocol_version)

Expand Down
15 changes: 12 additions & 3 deletions doc/api/ssl.rst
Original file line number Diff line number Diff line change
Expand Up @@ -600,9 +600,18 @@ Connection objects have the following methods:

.. py:method:: Connection.get_protocol_version()
Retrieve the version of the SSL or TLS protocol used by the Connection. For
example, it will return ``TLSv1`` for connections made over TLS version 1, or
``Unknown`` for connections that were not successfully established.
Retrieve the version of the SSL or TLS protocol used by the Connection.
For example, it will return ``0x303`` for connections made over TLS
version 1.2, or ``Unknown`` for connections that were not successfully
established.


.. py:method:: Connection.get_protocol_version_name()
Retrieve the version of the SSL or TLS protocol used by the Connection.
For example, it will return ``TLSv1`` in bytes for connections made over
TLS version 1, or ``Unknown`` for connections that were not successfully
established.


.. py:method:: Connection.get_client_ca_list()
Expand Down

0 comments on commit 6a9f27b

Please sign in to comment.