This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: TLS get keys and randoms
Type: enhancement Stage: needs patch
Components: Library (Lib) Versions: Python 3.6
process
Status: languishing Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: christian.heimes, dveeden, llaniscudani, loewis, pitrou
Priority: normal Keywords:

Created on 2012-06-14 20:40 by llaniscudani, last changed 2022-04-11 14:57 by admin.

Messages (7)
msg162825 - (view) Author: Daniel C. (llaniscudani) Date: 2012-06-14 20:40
I am develop a RADIUS server in 3.2 for WiFi authentication, the EAP-TLS or PEAP auths require a TLS tunnel AND get the master key and the client hello and server hello randoms to generate the MSK, the key to encrypt between WiFi user and WiFi access point.

The more necessary is the master key, the randoms is possible extract with "man in the middle"

Please, patch ssl.
msg162826 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-06-14 20:58
Please elaborate on what you are asking for, and try to make yourself understandable.
Also, a good way to see your enhancement request fulfilled is to contribute it yourself; please take a look at the devguide: http://docs.python.org/devguide/
msg162827 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2012-06-14 21:00
Daniel: Antoine is absolutely right. About the only way this can happen is if *you* contribute the code. Even if you would make clear what you want (what is a "master key" and the "hello randoms"?), it is likely that still nobody else needs that feature.

So without code from you, it will likely not happen.
msg162833 - (view) Author: Daniel C. (llaniscudani) Date: 2012-06-15 00:01
ok. i try to do the patch!
msg163085 - (view) Author: Daniel C. (llaniscudani) Date: 2012-06-17 20:40
This function solve the problem "SSL_tls1_key_exporter"

http://comments.gmane.org/gmane.comp.encryption.openssl.user/42015

included in the development version of OpenSSL 1.0.1 in the CVS

how is the correct way to implement in the python bind?
msg163086 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-06-17 21:04
Ok, so it seems the functionality is described in http://tools.ietf.org/html/rfc5705. If I understand correctly, it takes an ASCII label string, an optional context bytestring, and the length of the desired derived key. It then returns a bytestring of the given length, shared between client and server.

The low-level implementation of the ssl module is in Modules/_ssl.c. We probably want to add a method to PySSLSocket_Type there. Then in Lib/ssl.py there'll have to be a SSLSocket method to call the former method.

Tests should go in Lib/test/test_ssl.py.
msg264949 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2016-05-06 09:14
This request is an advanced use case. I'd rather keep the Python _ssl module simple and suggest PyOpenSSL + PyCA/cryptography for advanced features.
History
Date User Action Args
2022-04-11 14:57:31adminsetgithub: 59276
2016-05-06 09:14:56christian.heimessetstatus: open -> languishing

messages: + msg264949
versions: + Python 3.6, - Python 3.4
2016-01-13 07:50:46dveedensetnosy: + dveeden
2013-06-17 18:23:13pitrousetnosy: + christian.heimes
2012-06-29 00:05:13pitrousetversions: + Python 3.4, - Python 3.3
2012-06-17 21:04:30pitrousetmessages: + msg163086
stage: needs patch
2012-06-17 20:40:10llaniscudanisetmessages: + msg163085
2012-06-15 00:01:03llaniscudanisetmessages: + msg162833
2012-06-14 21:00:49loewissetnosy: + loewis
messages: + msg162827
2012-06-14 20:58:26pitrousetnosy: + pitrou

messages: + msg162826
versions: + Python 3.3, - Python 3.2
2012-06-14 20:40:12llaniscudanicreate