]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
7 years agoVendor flags for 11ax channel property flags for use with external ACS
Krishna Rao [Sat, 23 Sep 2017 13:03:23 +0000 (18:33 +0530)] 
Vendor flags for 11ax channel property flags for use with external ACS

Add 802.11ax channel property flags for use with external ACS (QCA
vendor command). Use the remaining available bits in
qca_wlan_vendor_channel_prop_flags for the first few 11ax flags. Then
add qca_wlan_vendor_channel_prop_flags_2 as a continuation of
qca_wlan_vendor_channel_prop_flags and add the remaining 11ax flags
there. Note that qca_wlan_vendor_channel_prop_flags_ext is not used
since it is currently not intended for holding such information. Rather
it is meant for holding additional control information related to
features such as DFS, CSA, etc.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: sigma_dut PMF group management cipher selection on STA
Jouni Malinen [Tue, 26 Sep 2017 14:54:56 +0000 (17:54 +0300)] 
tests: sigma_dut PMF group management cipher selection on STA

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: PMF group mgmt cipher constraints
Jouni Malinen [Tue, 26 Sep 2017 14:36:01 +0000 (17:36 +0300)] 
tests: PMF group mgmt cipher constraints

Verify new wpa_supplicant group_mgmt parameter functionality.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoAdd group_mgmt network parameter for PMF cipher selection
Jouni Malinen [Tue, 26 Sep 2017 14:36:33 +0000 (17:36 +0300)] 
Add group_mgmt network parameter for PMF cipher selection

The new wpa_supplicant network parameter group_mgmt can be used to
specify which group management ciphers (AES-128-CMAC, BIP-GMAC-128,
BIP-GMAC-256, BIP-CMAC-256) are allowed for the network. If not
specified, the current behavior is maintained (i.e., follow what the AP
advertises). The parameter can list multiple space separate ciphers.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoPAE: Validate input before pointer
Michael Braun [Thu, 17 Aug 2017 23:14:28 +0000 (01:14 +0200)] 
PAE: Validate input before pointer

ieee802_1x_kay_decode_mkpdu() calls ieee802_1x_mka_i_in_peerlist()
before body_len has been checked on all segments.

ieee802_1x_kay_decode_mkpdu() and ieee802_1x_mka_i_in_peerlist() might
continue and thus underflow left_len even if it finds left_len to small
(or before checking).

Additionally, ieee802_1x_mka_dump_peer_body() might perform out of bound
reads in this case.

Fix this by checking left_len and aborting if too small early.

Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
7 years agoAP: Remove unneeded check for 'added_unassociated'
Ilan Peer [Mon, 21 Aug 2017 16:36:21 +0000 (19:36 +0300)] 
AP: Remove unneeded check for 'added_unassociated'

In fils_hlp_finish_assoc() the station is already added to the
driver so it is not needed to check the 'added_unassociated'
flag.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
7 years agoFILS: Vendor attribute to disable driver FILS features
Vamsi Krishna [Wed, 30 Aug 2017 13:26:43 +0000 (18:56 +0530)] 
FILS: Vendor attribute to disable driver FILS features

The FILS features on STA needs to be disabled for testing purposes to
verify the APUT behavior with non-FILS STAs. Add a QCA vendor attribute
for doing so.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFix hostapd debug messages on wpa_pairwise and rsn_pairwise parsing
Jouni Malinen [Fri, 22 Sep 2017 12:23:00 +0000 (15:23 +0300)] 
Fix hostapd debug messages on wpa_pairwise and rsn_pairwise parsing

Incorrect value was printed out as the line number for this messages.

Signed-off-by: Jouni Malinen <j@w1.fi>
7 years agoTDLS: Update the comments related to TPK derivation
Jouni Malinen [Fri, 22 Sep 2017 07:21:28 +0000 (10:21 +0300)] 
TDLS: Update the comments related to TPK derivation

Update these comments based on IEEE Std 802.11-2016 to get rid of the
already resolved TODO comment regarding duplicated N_KEY use. The
implementation does not need any changes since it was already following
the fixed version in the current standard.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Make dbus_scan_abort more robust
Jouni Malinen [Wed, 20 Sep 2017 12:37:58 +0000 (15:37 +0300)] 
tests: Make dbus_scan_abort more robust

There was a race condition on the sequence where iface.AbortScan() is
immediately followed by iface.Scan(). If the driver event
(NL80211_CMD_SCAN_ABORTED) arrived after the following new scan request,
the D-Bus operation failed. This is not what this test case is trying to
check, so wait for an indication of the previous scan having terminated
properly before issuing the next scan.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFILS: Check req_ies for NULL pointer in hostapd_notif_assoc()
Peng Xu [Thu, 7 Sep 2017 18:21:11 +0000 (11:21 -0700)] 
FILS: Check req_ies for NULL pointer in hostapd_notif_assoc()

Add checking for NULL req_ies when FILS processing a driver ASSOC event
in hostapd_notif_assoc(). This was already done in number of old code
paths, but the newer FILS path did not handle this. Though, it is
unlikely that this code path would be reachable in practice since this
is all within sta->auth_alg == WLAN_AUTH_FILS_* check.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Suite B with RSA keys
Jouni Malinen [Sat, 16 Sep 2017 21:12:18 +0000 (00:12 +0300)] 
tests: Suite B with RSA keys

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoOpenSSL: Force RSA 3072-bit DH prime size limit for Suite B
Jouni Malinen [Sun, 17 Sep 2017 19:50:02 +0000 (22:50 +0300)] 
OpenSSL: Force RSA 3072-bit DH prime size limit for Suite B

Reject a DHE handshake if the server uses a DH prime that does not have
sufficient length to meet the Suite B 192-bit level requirement (<= 3k
(3072) bits).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoOpenSSL: Add option to disable ECDHE with Suite B RSA
Jouni Malinen [Sun, 17 Sep 2017 18:31:01 +0000 (21:31 +0300)] 
OpenSSL: Add option to disable ECDHE with Suite B RSA

The hostapd.conf tls_flags=[SUITEB-NO-ECDH] and wpa_supplicant network
profile phase1="tls_suiteb_no_ecdh=1" can now be used to configure Suite
B RSA constraints with ECDHE disabled. This is mainly to allow
the DHE TLS cipher suite to be tested.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoOpenSSL: Force RSA 3072-bit key size limit for Suite B
Jouni Malinen [Sun, 17 Sep 2017 16:05:19 +0000 (19:05 +0300)] 
OpenSSL: Force RSA 3072-bit key size limit for Suite B

Reject a peer certificate chain if it includes an RSA public key that
does not use sufficient key length to meet the Suite B 192-bit level
requirement (<= 3k (3072) bits).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoAdd hostapd tls_flags parameter
Jouni Malinen [Sat, 16 Sep 2017 21:11:37 +0000 (00:11 +0300)] 
Add hostapd tls_flags parameter

This can be used to set the TLS flags for authentication server.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoSuite B: Add tls_suiteb=1 parameter for RSA 3k key case
Jouni Malinen [Sat, 16 Sep 2017 21:09:47 +0000 (00:09 +0300)] 
Suite B: Add tls_suiteb=1 parameter for RSA 3k key case

This adds phase1 parameter tls_suiteb=1 into wpa_supplicant
configuration to allow TLS library (only OpenSSL supported for now) to
use Suite B 192-bit level rules with RSA when using >= 3k (3072) keys.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Allow raw hex PSK to be used for legacy configuration
Jouni Malinen [Fri, 15 Sep 2017 14:54:31 +0000 (17:54 +0300)] 
DPP: Allow raw hex PSK to be used for legacy configuration

The new psk=<hexdump> can be used as an alternative to pass=<passphrase>
when configuring the DPP Configurator with a legacy network parameters.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Add DPP-CONFOBJ-PASS/PSK events for hostapd legacy configuration
Jouni Malinen [Fri, 15 Sep 2017 14:45:06 +0000 (17:45 +0300)] 
DPP: Add DPP-CONFOBJ-PASS/PSK events for hostapd legacy configuration

These control interface event messages can be used to allow hostapd AP
to be configured for legacy WPA2-Personal configuration with DPP.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: sigma_dut with Suite B
Jouni Malinen [Thu, 14 Sep 2017 21:38:21 +0000 (00:38 +0300)] 
tests: sigma_dut with Suite B

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFix EAPOL-Key version check for a corner case with Suite B AKM
Jouni Malinen [Thu, 14 Sep 2017 21:36:25 +0000 (00:36 +0300)] 
Fix EAPOL-Key version check for a corner case with Suite B AKM

While the Suite B AKM is not really going to be used with CCMP-128 or
GCMP-128 cipher, this corner case could be fixed if it is useful for
some testing purposes. Allow that special case to skip the HMAC-SHA1
check based on CCMP/GCMP cipher and use the following AKM-defined check
instead.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agowpa_supplicant: Support dynamic update of wowlan_triggers
Lior David [Wed, 13 Sep 2017 09:50:54 +0000 (12:50 +0300)] 
wpa_supplicant: Support dynamic update of wowlan_triggers

Previously, wowlan_triggers were updated in kernel only during startup.
Also update it whenever it is set from the control interface.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: FILS SK with PFS and PMKSA caching
Jouni Malinen [Wed, 13 Sep 2017 19:07:08 +0000 (22:07 +0300)] 
tests: FILS SK with PFS and PMKSA caching

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFILS: Add DHss into FILS-Key-Data derivation when using FILS SK+PFS
Jouni Malinen [Wed, 13 Sep 2017 18:36:05 +0000 (21:36 +0300)] 
FILS: Add DHss into FILS-Key-Data derivation when using FILS SK+PFS

This part is missing from IEEE Std 802.11ai-2016, but the lack of DHss
here means there would not be proper PFS for the case where PMKSA
caching is used with FILS SK+PFS authentication. This was not really the
intent of the FILS design and that issue was fixed during REVmd work
with the changes proposed in
https://mentor.ieee.org/802.11/dcn/17/11-17-0906-04-000m-fils-fixes.docx
that add DHss into FILS-Key-Data (and PTK, in practice) derivation for
the PMKSA caching case so that a unique ICK, KEK, and TK are derived
even when using the same PMK.

Note: This is not backwards compatible, i.e., this breaks PMKSA caching
with FILS SK+PFS if only STA or AP side implementation is updated.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFILS: Update PMKID derivation rules for ERP key hierarchy establishment
Jouni Malinen [Wed, 13 Sep 2017 14:58:29 +0000 (17:58 +0300)] 
FILS: Update PMKID derivation rules for ERP key hierarchy establishment

IEEE Std 802.11ai-2016 had missed a change in the Pairwise key hierarchy
clause (12.7.1.3 in IEEE Std 802.11-2016) and due to that, the previous
implementation ended up using HMAC-SHA-1 -based PMKID derivation. This
was not really the intent of the FILS design and that issue was fixed
during REVmd work with the changes proposed in
https://mentor.ieee.org/802.11/dcn/17/11-17-0906-04-000m-fils-fixes.docx
that change FILS cases to use HMAC-SHA-256 and HMAC-SHA-384 based on the
negotiated AKM.

Update the implementation to match the new design. This changes the
rsn_pmkid() function to take in the more generic AKMP identifier instead
of a boolean identifying whether SHA256 is used.

Note: This is not backwards compatible, i.e., this breaks PMKSA caching
based on the initial ERP key hierarchy setup if only STA or AP side
implementation is updated. PMKSA caching based on FILS authentication
exchange is not impacted by this, though.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agomesh: Move writing of mesh_rssi_threshold inside CONFIG_MESH
Lior David [Wed, 30 Aug 2017 13:38:15 +0000 (16:38 +0300)] 
mesh: Move writing of mesh_rssi_threshold inside CONFIG_MESH

Previously, the code that writes mesh_rssi_threshold to a network block
always executes, but the code that reads it from network block and the
code that initializes it to a default value in a new network block are
inside #ifdef CONFIG_MESH. As a result when writing a config file it
will write mesh_rssi_threshold (since it has a non-default value) and
later fail to read the network block.

Fix this by moving the write code under #ifdef CONFIG_MESH as well.
Note, network blocks which already have mesh_rssi_threshold because of
the bug will still fail to read after the fix.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
7 years agotests: RSN pre-authentication based on pre-connection scan results
Jouni Malinen [Tue, 12 Sep 2017 13:47:30 +0000 (16:47 +0300)] 
tests: RSN pre-authentication based on pre-connection scan results

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFix RSN pre-authentication regression with pre-connection scan results
Jouni Malinen [Tue, 12 Sep 2017 13:42:01 +0000 (16:42 +0300)] 
Fix RSN pre-authentication regression with pre-connection scan results

The introduction of radio works and a delayed callback to complete
association/connection requests ended up breaking RSN pre-authentication
candidate list generation for the case of pre-connection scan results.
Previously, wpa_supplicant_associate() set the RSN state machine
configuration before returning and the calls to
wpa_supplicant_rsn_preauth_scan_results() immediately after this
function call were working fine. However, with the radio work callback,
the RSN state machine configuration started to happen only in that
callback which would be called soon after this code path has completed.
This resulted in the RSN state machine not knowing the selected SSID and
as such, rejecting all pre-authentication candidates.

Fix this by setting the RSN state machine configuration from
wpa_supplicant_associate() so that the existing callers of
wpa_supplicant_rsn_preauth_scan_results() can be used as-is to add
candidates for pre-authentication.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agomacsec_linux: Exit early when missing macsec kernel module
Michael Braun [Tue, 22 Aug 2017 15:02:48 +0000 (17:02 +0200)] 
macsec_linux: Exit early when missing macsec kernel module

Using driver macsec_linux makes no sense without macsec kernel module
loaded.

Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
7 years agomka: Add error handling for secy_init_macsec() calls
Sabrina Dubroca [Tue, 22 Aug 2017 08:34:19 +0000 (10:34 +0200)] 
mka: Add error handling for secy_init_macsec() calls

secy_init_macsec() can fail (if ->macsec_init fails), and
ieee802_1x_kay_init() should handle this and not let MKA run any
further, because nothing is going to work anyway.

On failure, ieee802_1x_kay_init() must deinit its kay, which will free
kay->ctx, so ieee802_1x_kay_init callers (only ieee802_1x_alloc_kay_sm)
must not do it. Before this patch there is a double-free of the ctx
argument when ieee802_1x_kay_deinit() was called.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
7 years agowpa_supplicant: Check length when building ext_capability in assoc_cb
Adiel Aloni [Mon, 21 Aug 2017 16:36:25 +0000 (19:36 +0300)] 
wpa_supplicant: Check length when building ext_capability in assoc_cb

When building wpa_ie in wpas_start_assoc_cb() with ext_capab,
make sure that assignment does not exceed max_wpa_ie_len.

Signed-off-by: Adiel Aloni <adiel.aloni@intel.com>
7 years agonl80211: Fix bridge name print while removing interface from bridge
Rohit Pratap Singh [Wed, 23 Aug 2017 10:29:10 +0000 (15:59 +0530)] 
nl80211: Fix bridge name print while removing interface from bridge

Removing interface from bridge in_br
linux_br_del_if(drv->global->ioctl_sock, in_br, ifname)
but in case of failure, the error print is incorrect:
it should show error for "in_br" instead of the wrong bridge name
"brname".

Signed-off-by: Rohit Pratap Singh <rohit.s@samsung.com>
Signed-off-by: Amit Khatri <amit.khatri@samsung.com>
7 years agotests: Fix radius_acct_failure_sta_data test
Andrei Otcheretianski [Mon, 21 Aug 2017 16:36:24 +0000 (19:36 +0300)] 
tests: Fix radius_acct_failure_sta_data test

The STA can get disconnected event before the AP processed the
deauthentication frame, resulting in GET_FAIL command being sent too
early. Fix this by waiting for AP-STA-DISCONNECTED on AP side, too.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
7 years agotests: Use global control interface in autogo_m2d test
Aloni, Adiel [Mon, 21 Aug 2017 16:36:23 +0000 (19:36 +0300)] 
tests: Use global control interface in autogo_m2d test

If dedicated P2P device is used, SET p2p_no_group_iface 0 should be
directed to the P2P device.

Signed-off-by: Adiel Aloni <adiel.aloni@intel.com>
7 years agotests: Fix missing function on some rrm test case error paths
Li Zhijian [Fri, 2 Jun 2017 03:56:18 +0000 (11:56 +0800)] 
tests: Fix missing function on some rrm test case error paths

Import vht_supported from test_ap_vht to fix the following issue:

rrm_beacon_req_table_vht run failed: global name 'vht_supported' is not defined

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
7 years agotests: Enable D-Bus test on more platforms
Li Zhijian [Tue, 6 Jun 2017 08:13:29 +0000 (16:13 +0800)] 
tests: Enable D-Bus test on more platforms

Not all distro contains /var/run/dbus/pid, debian for example:
dbus-daemon start with nopidfile
root@debian9:/home/lizhijian/chroot_clean/tmp/build-hwsim/hostap/tests/hwsim# ps aux |grep dbus
message+   598  0.0  0.1  46068  4836 ?        Ss   15:46   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
Debian-+   656  0.0  0.0  45220  3924 ?        Ss   15:46   0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Xiaodong Jia <jiaxd-fnst@cn.fujitsu.com>
7 years agocrypto: Fix undefined behavior in random number generator
Michael Braun [Fri, 18 Aug 2017 16:55:17 +0000 (18:55 +0200)] 
crypto: Fix undefined behavior in random number generator

ubsan reported:

../src/crypto/random.c:69:30: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int'

Explicitly check for the ROL32(x, 0) case which is supposed to be a
no-op.

Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
7 years agoSend Client-Error when AT_KDF attributes from the server are incorrect
Akihiro Onodera [Tue, 25 Jul 2017 03:25:51 +0000 (12:25 +0900)] 
Send Client-Error when AT_KDF attributes from the server are incorrect

After KDF negotiation, must check only requested change occurred in the
list of AT_KDF attributes. If there are any other changes, the peer must
behave like the case that AT_MAC had been incorrect and authentication
is failed. These are defined in EAP-AKA' specification RFC 5448, Section
3.2.

Add a complete check of AT_KDF attributes and send Client-Error if a
change which is not requested is included in it.

Signed-off-by: Tomoharu Hatano <tomoharu.hatano@sony.com>
7 years agotests: Remove forgotten print from ap_wpa2_eap_sim_zero_db_timeout
Jouni Malinen [Sat, 9 Sep 2017 23:15:05 +0000 (02:15 +0300)] 
tests: Remove forgotten print from ap_wpa2_eap_sim_zero_db_timeout

This was supposed to be used during development testing only.

Signed-off-by: Jouni Malinen <j@w1.fi>
7 years agotests: EAP-AKA' with external UMTS auth to hit Synchronization-Failure
Jouni Malinen [Sat, 9 Sep 2017 22:33:37 +0000 (01:33 +0300)] 
tests: EAP-AKA' with external UMTS auth to hit Synchronization-Failure

Signed-off-by: Jouni Malinen <j@w1.fi>
7 years agoAdd AT_KDF attributes to Synchronization-Failure in EAP-AKA'
Akihiro Onodera [Tue, 25 Jul 2017 03:24:18 +0000 (12:24 +0900)] 
Add AT_KDF attributes to Synchronization-Failure in EAP-AKA'

AT_KDF attributes need to be included in Synchronization-Failure
according to EAP-AKA' specification RFC 5448.

Signed-off-by: Tomoharu Hatano <tomoharu.hatano@sony.com>
7 years agoPMKSA: Fix use-after-free in pmksa_cache_clone_entry()
Andrew Elble [Fri, 8 Sep 2017 01:42:02 +0000 (21:42 -0400)] 
PMKSA: Fix use-after-free in pmksa_cache_clone_entry()

pmksa_cache_add_entry() may actually free old_entry if the PMKSA cache
is full. This can result in the PMKSA cache containing entries with
corrupt expiration times.

Signed-off-by: Andrew Elble <aweits@rit.edu>
7 years agotests: D-Bus mesh signals and properties
Jouni Malinen [Sat, 9 Sep 2017 22:15:31 +0000 (01:15 +0300)] 
tests: D-Bus mesh signals and properties

Signed-off-by: Jouni Malinen <j@w1.fi>
7 years agodbus: Add new interface property to get mesh group
Saurav Babu [Tue, 18 Jul 2017 07:07:57 +0000 (12:37 +0530)] 
dbus: Add new interface property to get mesh group

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agodbus: Add new interface property to get connected mesh peers
Saurav Babu [Tue, 18 Jul 2017 07:07:56 +0000 (12:37 +0530)] 
dbus: Add new interface property to get connected mesh peers

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agodbus: Add MeshPeerDisconnected signal
Saurav Babu [Tue, 18 Jul 2017 07:07:55 +0000 (12:37 +0530)] 
dbus: Add MeshPeerDisconnected signal

This is similar to the control interface event MESH-PEER-DISCONNECTED.

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agodbus: Add MeshPeerConnected signal
Saurav Babu [Tue, 18 Jul 2017 07:07:54 +0000 (12:37 +0530)] 
dbus: Add MeshPeerConnected signal

This is similar to the control interface event MESH-PEER-CONNECTED.

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agodbus: Add MeshGroupRemoved signal
Saurav Babu [Tue, 18 Jul 2017 07:07:53 +0000 (12:37 +0530)] 
dbus: Add MeshGroupRemoved signal

This is similar to the control interface event MESH-GROUP-REMOVED.

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agodbus: Add MeshGroupStarted signal
Saurav Babu [Tue, 18 Jul 2017 07:07:51 +0000 (12:37 +0530)] 
dbus: Add MeshGroupStarted signal

This introduces a new interface for mesh and adds a signal that
is similar to the control interface event MESH-GROUP-STARTED.

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
7 years agoFILS: Add a space before MAC address to a HLP debug message
Jouni Malinen [Thu, 7 Sep 2017 10:33:40 +0000 (13:33 +0300)] 
FILS: Add a space before MAC address to a HLP debug message

The "FILS: No pending HLP DHCP exchange with hw_addr" debug message was
missing a space before the following MAC address, so add that there to
make the message more readable.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Enable DPP in default configuration files
Jouni Malinen [Wed, 6 Sep 2017 18:21:56 +0000 (21:21 +0300)] 
tests: Enable DPP in default configuration files

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoRemove the completely unused FT parameters in driver association data
Jouni Malinen [Wed, 6 Sep 2017 18:20:13 +0000 (21:20 +0300)] 
Remove the completely unused FT parameters in driver association data

It looks like these parameters related to FT have never been used, so
remove them from causing confusion. The separate update_ft_ies()
callback is used to provide the FT elements.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Write MSK dump files from authentication server
Jouni Malinen [Tue, 5 Sep 2017 16:12:29 +0000 (19:12 +0300)] 
tests: Write MSK dump files from authentication server

This makes it easier to post-process frame capture files if frames need
to be decrypted in test cases that do not configure wlantest with the
PMK directly (i.e., mainly the cases when a RADIUS server is used).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agowlantest: FILS keys and (Re)Association Request/Response frames
Jouni Malinen [Tue, 5 Sep 2017 16:01:59 +0000 (19:01 +0300)] 
wlantest: FILS keys and (Re)Association Request/Response frames

Try to derive PTK when FILS shared key authentication is used without
PFS. The list of available PMKs is interpreted as rMSK for this purpose
and PMK and PTK is derived from that. If the resulting PTK (KEK) can be
used to decrypt the encrypted parts of (Re)Association Request/Response
frames, mark the PTK as derived so that encrypted frames during the
association can be decrypted. In addition, write a decrypted version of
the (Re)Association Request/Response frames into the output file.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agowlantest: Support variable length PMK
Jouni Malinen [Tue, 5 Sep 2017 16:01:14 +0000 (19:01 +0300)] 
wlantest: Support variable length PMK

This is needed to be able to handle key derivation for FILS
authentication.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agowlantest: Build helper files with FILS support included
Jouni Malinen [Tue, 5 Sep 2017 15:59:41 +0000 (18:59 +0300)] 
wlantest: Build helper files with FILS support included

wlantest needs this for being able to decrypt FILS (Re)Association
Request/Response frames.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoAdd SHA-384 routines to libcrypto.a
Jouni Malinen [Tue, 5 Sep 2017 15:58:59 +0000 (18:58 +0300)] 
Add SHA-384 routines to libcrypto.a

wlantest needs this for being able to decrypt FILS (Re)Association
Request/Response frames.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: SAE commit message override on wpa_supplicant
Jouni Malinen [Fri, 1 Sep 2017 23:13:50 +0000 (02:13 +0300)] 
tests: SAE commit message override on wpa_supplicant

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoSAE: Allow commit fields to be overridden for testing purposes (STA)
Jouni Malinen [Fri, 1 Sep 2017 23:12:44 +0000 (02:12 +0300)] 
SAE: Allow commit fields to be overridden for testing purposes (STA)

The new "SET sae_commit_override <hexdump>" control interface command
can be used to force wpa_supplicant to override SAE commit message
fields for testing purposes. This is included only in
CONFIG_TESTING_OPTIONS=y builds.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: SAE commit message override on hostapd
Jouni Malinen [Fri, 1 Sep 2017 23:04:18 +0000 (02:04 +0300)] 
tests: SAE commit message override on hostapd

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoSAE: Allow commit fields to be overridden for testing purposes
Jouni Malinen [Fri, 1 Sep 2017 22:52:15 +0000 (01:52 +0300)] 
SAE: Allow commit fields to be overridden for testing purposes

The new sae_commit_override=<hexdump> parameter can be used to force
hostapd to override SAE commit message fields for testing purposes. This
is included only in CONFIG_TESTING_OPTIONS=y builds.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: SAE reflection attack using internal hostapd mechanism
Jouni Malinen [Fri, 1 Sep 2017 22:32:56 +0000 (01:32 +0300)] 
tests: SAE reflection attack using internal hostapd mechanism

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoSAE: Add testing code for reflection attack
Jouni Malinen [Fri, 1 Sep 2017 22:31:47 +0000 (01:31 +0300)] 
SAE: Add testing code for reflection attack

Allow hostapd to be configured to perform SAE reflection attack for SAE
testing purposes with sae_reflection_attack=1 configuration parameter.
This is included only in CONFIG_TESTING_OPTIONS=y builds.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoSAE: Fix PMKSA caching behavior in AP mode
Jouni Malinen [Fri, 1 Sep 2017 22:02:15 +0000 (01:02 +0300)] 
SAE: Fix PMKSA caching behavior in AP mode

Add PMKID into EAPOL-Key 1/4 when using SAE and fix the PMK-from-PMKSA
selection in some cases where PSK (from passphrase) could have been
used.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Add base64 dependency in makefiles
Jouni Malinen [Fri, 1 Sep 2017 18:15:34 +0000 (21:15 +0300)] 
DPP: Add base64 dependency in makefiles

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Derive PMKID using SHA256() for all curves
Jouni Malinen [Thu, 24 Aug 2017 20:59:44 +0000 (23:59 +0300)] 
DPP: Derive PMKID using SHA256() for all curves

This was previously defined inconsistently (H() vs. SHA256()), but it is
now clarified in the draft tech spec to use SHA256(), so update
implementation to do that.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Verify data connectivity with DPP AKM
Jouni Malinen [Thu, 24 Aug 2017 20:47:58 +0000 (23:47 +0300)] 
tests: Verify data connectivity with DPP AKM

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: DPP association with nl80211 connect command
Jouni Malinen [Thu, 24 Aug 2017 20:31:46 +0000 (23:31 +0300)] 
tests: DPP association with nl80211 connect command

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agonl80211: Fix auth_alg selection with FILS in the connect command
Jouni Malinen [Thu, 24 Aug 2017 20:30:20 +0000 (23:30 +0300)] 
nl80211: Fix auth_alg selection with FILS in the connect command

NL80211_ATTR_AUTH_TYPE needs to be skipped if multiple auth_alg options
are included. The previous list missed the new FILS auth_alg here and
ended up not doing so if OPEN and FILS were included.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoFILS: Fix wpa_supplicant AP build without CONFIG_IEEE80211W
Jouni Malinen [Thu, 24 Aug 2017 14:31:56 +0000 (17:31 +0300)] 
FILS: Fix wpa_supplicant AP build without CONFIG_IEEE80211W

CONFIG_FILS was missed as one of items requiring the p pointer in
hostapd_notif_assoc().

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Make dpp_qr_code_auth_initiator_enrollee more robust
Jouni Malinen [Wed, 23 Aug 2017 12:55:46 +0000 (15:55 +0300)] 
tests: Make dpp_qr_code_auth_initiator_enrollee more robust

Wait for the configuration step to complete before forcefully
terminating DPP listen. Previous version was causing failures for this
test case sequence:
dpp_qr_code_auth_initiator_enrollee dpp_pkex_config2

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Use Transaction ID in Peer Discovery Request/Response frames
Jouni Malinen [Wed, 23 Aug 2017 09:49:22 +0000 (12:49 +0300)] 
DPP: Use Transaction ID in Peer Discovery Request/Response frames

DPP tech spec changed the contents of these frames by replacing the
public key hash attributes with a Transaction ID attribute that gets
copied from the request to the response to identify the transaction in a
simpler manner.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agohs20-osu-client: Fix build with new OpenSSL and BoringSSL
Hu Wang [Wed, 23 Aug 2017 08:40:10 +0000 (11:40 +0300)] 
hs20-osu-client: Fix build with new OpenSSL and BoringSSL

Use the SSL_get_SSL_CTX() helper instead of dereferencing SSL* since
struct ssl_st is not exposed in public header files anymore.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoIntroduce QCA_NL80211_VENDOR_SUBCMD_HANG
Sunil Dutt [Wed, 23 Aug 2017 04:35:21 +0000 (10:05 +0530)] 
Introduce QCA_NL80211_VENDOR_SUBCMD_HANG

This is an event indicating to the user space that the driver has
detected an internal failure. The driver is expected to recover from
such a failure automatically, e.g., by resetting the device. This event
carries the information indicating the reason that triggered this
detection.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Update DPP discovery override value format
Jouni Malinen [Tue, 22 Aug 2017 21:31:30 +0000 (00:31 +0300)] 
tests: Update DPP discovery override value format

This changed in the DPP tech spec, so update the test case to match the
current encoding.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: JSON module tests for additional array parsing
Jouni Malinen [Tue, 22 Aug 2017 21:29:52 +0000 (00:29 +0300)] 
tests: JSON module tests for additional array parsing

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoJSON: Fix parsing of arrays of numbers, strings, literals
Jouni Malinen [Tue, 22 Aug 2017 21:28:55 +0000 (00:28 +0300)] 
JSON: Fix parsing of arrays of numbers, strings, literals

The previous implementation was able to parse arrays of objects, but not
arrays of other types of items.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoDPP: Remove devices object from the connector
Jouni Malinen [Tue, 22 Aug 2017 20:46:27 +0000 (23:46 +0300)] 
DPP: Remove devices object from the connector

This was removed from the draft DPP tech spec, so remove it from the
implementation as well.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: Remove use of dpp_devices_override
Jouni Malinen [Tue, 22 Aug 2017 20:45:46 +0000 (23:45 +0300)] 
tests: Remove use of dpp_devices_override

The devices object was removed, so this parameter will disappear as
well.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agotests: sigma_dut tests for SAE
Jouni Malinen [Tue, 22 Aug 2017 18:23:04 +0000 (21:23 +0300)] 
tests: sigma_dut tests for SAE

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoQCA vendor attribute to configure beacon miss penalize count for BTC
Sachin Ahuja [Tue, 1 Aug 2017 09:48:53 +0000 (15:18 +0530)] 
QCA vendor attribute to configure beacon miss penalize count for BTC

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoQCA vendor attribute to configure beacon miss count
Sachin Ahuja [Wed, 26 Jul 2017 07:33:20 +0000 (13:03 +0530)] 
QCA vendor attribute to configure beacon miss count

This can be used to dynamically enable/disable beacon miss count.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoQCA vendor attribute to enable/disable scan
Sandeep Puligilla [Tue, 25 Jul 2017 19:30:55 +0000 (12:30 -0700)] 
QCA vendor attribute to enable/disable scan

This commit introduces QCA vendor attribute to
disable/enable scan.

Signed-off-by: Sandeep Puligilla <spuligil@qti.qualcomm.com>
7 years agotests: hostapd with zero length ap_pin parameter
Jouni Malinen [Mon, 14 Aug 2017 18:12:33 +0000 (21:12 +0300)] 
tests: hostapd with zero length ap_pin parameter

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
7 years agoWPS: Interpret zero length ap_pin hostapd.conf parameter as "unset"
Jouni Malinen [Mon, 14 Aug 2017 18:07:09 +0000 (21:07 +0300)] 
WPS: Interpret zero length ap_pin hostapd.conf parameter as "unset"

hostapd allows arbitrary AP PIN to be used in WPS. This means that
setting ap_pin to a zero length string ends up enabling AP PIN so that
external registrars can use this specific zero lenth ap_pin value. There
are apparently some APs that have used this invalid configuration with
unintended results. While the proper fix for that is to fix the
component that generates the invalid configuration, hostapd can also
reject such values since the likelihood of a real world use case for
zero length AP PIN (Device Password) is minimal.

Start interpreting zero length ap_pin parameter value as a request to
"unset" the previously set value in hostapd.conf (or if not previously
set, leave it unset). With this, a hostapd.conf file including the
"ap_pin=" line will end up getting interpretted just like that same file
with the ap_pin parameter completely removed, i.e., with AP PIN being
disabled.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
8 years agoRemove some obsolete information from hostapd README file
Jouni Malinen [Wed, 2 Aug 2017 09:01:08 +0000 (12:01 +0300)] 
Remove some obsolete information from hostapd README file

Number of the URLs were not valid anymore and some of the notes have
been obsolete for years.

Signed-off-by: Jouni Malinen <j@w1.fi>
8 years agohw_features: Fix check of supported 802.11ac channel width
Sven Eckelmann [Fri, 9 Jun 2017 09:39:51 +0000 (11:39 +0200)] 
hw_features: Fix check of supported 802.11ac channel width

The two channel width bits in the VHT capability field can be decoded in
following values (IEEE Std 802.11ac-2013 8.4.2.160.2 VHT Capabilities
Info field):

 * 0: no 160 or 80+80 MHz support
 * 1: 160 MHz support
 * 2: 160 and 80+80 MHz support
 * 3: (reserved)

The check must therefore not be done bitwise but instead it must checked
whether the capabilities announced by the driver are at least the ones
requested by the user.

Fixes: c781eb842852 ("hostapd: Verify VHT capabilities are supported by driver")
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
8 years agotests: Make wnm_bss_tm_req_with_mbo_ie more robust
Andrei Otcheretianski [Mon, 12 Jun 2017 06:29:28 +0000 (09:29 +0300)] 
tests: Make wnm_bss_tm_req_with_mbo_ie more robust

On slow machines or inside VM it may take some time for "DISCONNECTED"
event to arrive. Since the retry delay counter is started already, it
may result in less than 5 seconds time between "DISCONNECTED" and
"CONNECTED" events.

Fix the test by taking more accurate timestamps between the events.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
8 years agoWNM: Differentiate between WNM for station and for AP in build
Avraham Stern [Mon, 12 Jun 2017 06:29:27 +0000 (09:29 +0300)] 
WNM: Differentiate between WNM for station and for AP in build

Previously, CONFIG_WNM enabled build that supports WNM for both
station mode and AP mode. However, in most wpa_supplicant cases only
station mode WNM is required and there is no need for AP mode WNM.

Add support to differentiate between station mode WNM and AP mode
WNM in wpa_supplicant builds by adding CONFIG_WNM_AP that should be
used when AP mode WNM support is required in addition to station mode
WNM. This allows binary size to be reduced for builds that require
only the station side WNM functionality.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
8 years agoRRM: Remove duplicate frequencies from beacon report scan request
Avraham Stern [Sun, 11 Jun 2017 12:41:23 +0000 (15:41 +0300)] 
RRM: Remove duplicate frequencies from beacon report scan request

When setting the frequencies for beacon report request scan, it is
possible that a frequency is added twice (e.g., when the same channel
appears both in the channel field and in the AP channel report
subelement). This may cause the scan request to fail.
Make sure the frequencies array contains no duplications before
requesting the scan.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
8 years agotests: Fix RRM tests to allow refused/incapable responses
Andrei Otcheretianski [Sun, 11 Jun 2017 12:41:22 +0000 (15:41 +0300)] 
tests: Fix RRM tests to allow refused/incapable responses

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
8 years agoRRM: Send response when Beacon report request is not supported/refused
Avraham Stern [Sun, 11 Jun 2017 12:41:21 +0000 (15:41 +0300)] 
RRM: Send response when Beacon report request is not supported/refused

Send Radio Measurement response with measurement mode set to reject
in the following cases:
 1. Reporting conditions is not supported.
 2. No valid channels found for the measurement

Sending a response with an incapable indication will stop the AP from
sending other measurement requests of the same type as specified
in IEEE Std 802.11-2016, 11.11.6.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
8 years agoRRM: Send Radio Measurement response when beacon report scan fails
Avraham Stern [Sun, 11 Jun 2017 12:41:20 +0000 (15:41 +0300)] 
RRM: Send Radio Measurement response when beacon report scan fails

When failing to trigger scan for beacon report (e.g., when the
requested duration is not supported by the driver), send a
Radio Measurement response with the mode set to refused and don't
retry the scan.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
8 years agotests: Rejection of group-addressed RRM measurement request
Jouni Malinen [Mon, 17 Jul 2017 14:47:25 +0000 (17:47 +0300)] 
tests: Rejection of group-addressed RRM measurement request

Signed-off-by: Jouni Malinen <j@w1.fi>
8 years agoRRM: Send reject/refuse response only to unicast measurement request
Avraham Stern [Sun, 11 Jun 2017 12:41:19 +0000 (15:41 +0300)] 
RRM: Send reject/refuse response only to unicast measurement request

IEEE Std 802.11-2016, 11.11.6 specifies that a station that is unable to
make a requested measurement or refuses to make a measurement shall
respond only if the measurement request was received within an
individually addressed radio measurement request frame, but shall not
respond if such a request was received in a group addressed frame.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
8 years agowpa_cli: Fix global control interface for STA-FIRST/STA-NEXT
Dmitry Shmidt [Mon, 22 May 2017 21:38:58 +0000 (21:38 +0000)] 
wpa_cli: Fix global control interface for STA-FIRST/STA-NEXT

If global control interface is used and wlan doesn't support P2P,
   wpa_s->global->p2p == NULL, and log shows:
wpa_supplicant: Failed to create interface p2p-dev-wlan0: -5 (I/O error)
wpa_supplicant: nl80211: Failed to create a P2P Device interface p2p-dev-wlan0
wpa_supplicant: P2P: Failed to enable P2P Device interface

Then STA-FIRST/STA-NEXT is not going to redirect to any interface,
making update_stations(ctrl_conn) is stuck in never-ending loop:

sendto(3, "STA-FIRST", 9, 0, NULL, 0)   = 9
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995000})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995833})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995000})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
8 years agoDPP: Fix build with OpenSSL 1.1.0
Jouni Malinen [Mon, 17 Jul 2017 09:26:44 +0000 (12:26 +0300)] 
DPP: Fix build with OpenSSL 1.1.0

X509_ALGOR_get0() was modified to use const ** pointer as the first
argument in OpenSSL 1.1.0, so need to use different type here to avoid
compilation issues.

Signed-off-by: Jouni Malinen <j@w1.fi>
8 years agoOpenSSL: Clear default_passwd_cb more thoroughly
Jouni Malinen [Mon, 17 Jul 2017 09:06:17 +0000 (12:06 +0300)] 
OpenSSL: Clear default_passwd_cb more thoroughly

Previously, the pointer to strdup passwd was left in OpenSSL library
default_passwd_cb_userdata and even the default_passwd_cb was left set
on an error path. To avoid unexpected behavior if something were to
manage to use there pointers, clear them explicitly once done with
loading of the private key.

Signed-off-by: Jouni Malinen <j@w1.fi>
8 years agoOpenSSL: Fix private key password handling with OpenSSL >= 1.1.0f
Beniamino Galvani [Sun, 9 Jul 2017 09:14:10 +0000 (11:14 +0200)] 
OpenSSL: Fix private key password handling with OpenSSL >= 1.1.0f

Since OpenSSL version 1.1.0f, SSL_use_PrivateKey_file() uses the
callback from the SSL object instead of the one from the CTX, so let's
set the callback on both SSL and CTX. Note that
SSL_set_default_passwd_cb*() is available only in 1.1.0.

Signed-off-by: Beniamino Galvani <bgalvani@redhat.com>
8 years agoOpenSSL: Add build option to select default ciphers
Beniamino Galvani [Sun, 9 Jul 2017 09:06:50 +0000 (11:06 +0200)] 
OpenSSL: Add build option to select default ciphers

Add a build option to select different default ciphers for OpenSSL
instead of the hardcoded default "DEFAULT:!EXP:!LOW".

This new option is useful on distributions where the security level
should be consistent for all applications, as in Fedora [1]. In such
cases the new configuration option would be set to "" or
"PROFILE=SYSTEM" to select the global crypto policy by default.

[1] https://fedoraproject.org/wiki/Changes/CryptoPolicy

Signed-off-by: Beniamino Galvani <bgalvani@redhat.com>