Go to file
Jouni Malinen 00468b4650 Add TLS client events, server probing, and srv cert matching
This allows external programs (e.g., UI) to get more information
about server certificate chain used during TLS handshake. This can
be used both to automatically probe the authentication server to
figure out most likely network configuration and to get information
about reasons for failed authentications.

The follow new control interface events are used for this:
CTRL-EVENT-EAP-PEER-CERT
CTRL-EVENT-EAP-TLS-CERT-ERROR

In addition, there is now an option for matching the server certificate
instead of the full certificate chain for cases where a trusted CA is
not configured or even known. This can be used, e.g., by first probing
the network and learning the server certificate hash based on the new
events and then adding a network configuration with the server
certificate hash after user have accepted it. Future connections will
then be allowed as long as the same server certificate is used.

Authentication server probing can be done, e.g., with following
configuration options:
    eap=TTLS PEAP TLS
    identity=""
    ca_cert="probe://"

Example set of control events for this:
CTRL-EVENT-EAP-STARTED EAP authentication started
CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21
CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected
CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=US/ST=California/L=San Francisco/CN=Server/emailAddress=server@kir.nu' hash=5a1bc1296205e6fdbe3979728efe3920798885c1c4590b5f90f43222d239ca6a
CTRL-EVENT-EAP-TLS-CERT-ERROR reason=8 depth=0 subject='/C=US/ST=California/L=San Francisco/CN=Server/emailAddress=server@kir.nu' err='Server certificate chain probe'
CTRL-EVENT-EAP-FAILURE EAP authentication failed

Server certificate matching is configured with ca_cert, e.g.:
    ca_cert="hash://server/sha256/5a1bc1296205e6fdbe3979728efe3920798885c1c4590b5f90f43222d239ca6a"

This functionality is currently available only with OpenSSL. Other
TLS libraries (including internal implementation) may be added in
the future.
2010-02-13 11:14:23 +02:00
doc dbus: Change WPA/RSNIE byte array props to dicts 2010-01-16 16:37:37 +02:00
eap_example Add rules for building src/tls/libtls.a and use it with eap_example 2009-12-06 16:27:54 +02:00
hostapd Preparations for v0.7.1 release 2010-01-16 19:04:38 +02:00
mac80211_hwsim Remove mac80211_hwsim code 2009-07-28 14:34:23 +03:00
patches Updated OpenSSL 0.9.8i patch to use new session ticket override API 2008-11-23 21:18:26 +02:00
radius_example radius_example: Fix memory leak on deinit 2009-12-24 12:18:57 +02:00
src Add TLS client events, server probing, and srv cert matching 2010-02-13 11:14:23 +02:00
testing Re-initialize hostapd/wpa_supplicant git repository based on 0.6.3 release 2008-02-27 17:34:43 -08:00
tests Add generic doubly-linked list implementation 2009-12-19 13:43:25 +02:00
wpa_supplicant Add TLS client events, server probing, and srv cert matching 2010-02-13 11:14:23 +02:00
www Preparations for v0.7.1 release 2010-01-16 19:04:38 +02:00
.gitignore Add root .gitignore file to cleanup ignore lists 2009-06-29 21:47:19 +03:00
build_nsis.sh Added Windows NSIS installer for wpa_supplicant 2008-12-20 20:40:23 +02:00
build_release Preparations for v0.7.1 release 2010-01-16 19:04:38 +02:00
COPYING Re-initialize hostapd/wpa_supplicant git repository based on 0.6.3 release 2008-02-27 17:34:43 -08:00
FAQ Re-initialize hostapd/wpa_supplicant git repository based on 0.6.3 release 2008-02-27 17:34:43 -08:00
README Re-initialize hostapd/wpa_supplicant git repository based on 0.6.3 release 2008-02-27 17:34:43 -08:00

wpa_supplicant and hostapd v0.6.x
---------------------------------

Copyright (c) 2002-2007, Jouni Malinen <j@w1.fi> and contributors
All Rights Reserved.

These program is dual-licensed under both the GPL version 2 and BSD
license. Either license may be used at your option.


This package may include either wpa_supplicant, hostapd, or both. See
README file respective subdirectories (wpa_supplicant/README or
hostapd/README) for more details.

Source code files have been moved around in v0.6.x releases and
compared to earlier releases, the programs are now build by first
going to a subdirectory (wpa_supplicant or hostapd) and creating
build configuration (.config) and running 'make' there (for
Linux/BSD/cygwin builds).