aboutsummaryrefslogtreecommitdiff
path: root/src/rsn_supp/pmksa_cache.c
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2018-07-03 15:17:14 -0700
committerRoshan Pius <rpius@google.com>2018-07-12 16:40:59 +0000
commit3a1667e255490b6aa787c4ee335bc6266aa89824 (patch)
tree82c9cd152fe6ed0c137d950debe856c1ab36d30d /src/rsn_supp/pmksa_cache.c
parent19205d48dcbba0ae7a0726db617c3ba9d6c98c7a (diff)
downloadwpa_supplicant_8-3a1667e255490b6aa787c4ee335bc6266aa89824.tar.gz
Cumulative patch from commit 7bf86e44161fe1bcadaf4ca2cc3b6358fb7f3bf9
7bf86e441 Define test config QCA vendor attribute for HE MU EDCA params 6cc77193c Define test config QCA vendor attribute for Tx beamformee NSTS 73d3f8841 HS 2.0: CoA-Request from Terms and Conditions server abed6136a RADIUS: Add DAC implementation in hostapd(AS) 72aad113c RADIUS: Allow 0.0.0.0 to be used as wildard radius_das_client 2122fc83a RADIUS server: Add current_sessions SQLite table d4e39c51f HS 2.0: Move Terms and Conditions Server URL generation from AP to AS de3885fcc HS 2.0: Process Credential/UsernamePassword/EAPMethod nodes in PPS MO 3a8dd390c SAE: Allow authentication restart on AP a10f5714c HS 2.0: Allow Hotspot 2.0 version number to be overridden for build e8cf9fc33 P2P: Use more compact debug print of common group frequencies 26eac0a99 P2P: Improve common group channel selection if GO needs to be moved 616178a2a P2P/AP: More detailed debug prints on HT/VHT parameter selection c6f01fbf2 nl80211: Add more command/event names to debug prints 4a0e01156 AP: Fix HT 20/40 co-ex transition timer cancellation on iface removal b915f2cdf nl80211: Handle NL80211_CMD_WIPHY_REG_CHANGE event c3e4f40cd FT: Derive PMKR0Name/PMKR1Name using SHA-384 with AKM 00-0F-AC:13 e8d08cf37 SAE: Do not drop STA entry on reauthentication in infrastructure BSS ef13b33af FT: Support BIP-CMAC-256, BIP-GMAC-128, BIP-GMAC-256 in STA case ff168f8c2 FT: Support 256-bit IGTK in AP case 2cf36d608 FT: Handle AssocResp generation failures as fatal errors 657b4c45a FILS: Fix KEK2 use in FT-FILS use cases 88bf44be4 FT: Fix potential NULL pointer dereference in MDE addition 661afb2ed FT: Fix RRB error path handling df3bf6870 FT: Debug print of IE parsing element details d8e8c992c FT: Add key management value FT-EAP-SHA384 for wpa_supplicant c6f2eceb8 FT: Add key management value FT-EAP-SHA384 for hostapd 3d9cd0841 FT: Add support for variable length PMK-R1 receiving in RRB a7968ea56 FT: FTE generation for SHA384-based AKM on AP 06f128660 FT: FTE generation for SHA384-based AKM on STA 9a33737a0 FT: FTE parsing for SHA384-based AKM 8c2715b35 FT: Connection settings for SHA384-based AKM 994eac7e6 FT: PMK-R0 derivation using SHA384-based AKM 1655e81c9 FT: PMKID derivation using SHA384-based AKM 40a2eb116 FT: PTK derivation using SHA384-based AKM 7880a6a2b FT: PMK-R1 derivation using SHA384-based AKM b327026a7 FT: FTE MIC calculation using SHA384-based AKM c49a9d6b9 FT: EAPOL-Key MIC calculation using SHA384-based AKM 9f12271b2 FT: XXKey derivation for SHA384-based AKM a3e18dbb6 FT: Support variable length keys c22bb5bba FT: SHA384-based AKM in RSNE processing 3a11c69e0 EAP-TLS: Derive Session-Id using TLS-Exporter when TLS v1.3 is used 2d26434ac EAP-TLS server: Fix EMSK derivation with TLS v1.3 f8aed720e EAP-TLS: Update key derivation label per draft-ietf-emu-eap-tls13-00 20c2ea412 wpa_supplicant: Fix parsing of max_oper_chwidth 8fd29a043 mesh: Fix crash with CONFIG_TAXONOMY enabled 8518326b2 Add some missing driver flags strings b375b04b6 WNM: Fix time_zone advertisement without time_zone configuration 0928b6294 nl80211: Allow mesh interface to send channel switch request f5a602168 HS 2.0: Allow OSEN connection to be used in an RSN BSS 8d660a4ba HS 2.0: Allow OSEN connection to be enabled in an RSN BSS 0fe3ede0a macsec_qca: Fix byte order of TX SCI port 22ac3dfeb EAP-pwd: Mask timing of PWE derivation b8acd5011 EAP-pwd peer: Add SHA512 hash based salt mechanism fb3675848 EAP-pwd peer: Add SHA256 hash based salt mechanism 7ef8adc7d EAP-pwd peer: Add SHA-1 hash based salt mechanism 7280723fb EAP-pwd peer: Check for unexpected state for ID exchange 44136f6ca EAP-pwd peer: Add support for salted password databases 0744e303c EAP-pwd peer: Move PWE derivation to commit exchange d52ead3db EAP-pwd server: Add support for salted password databases a8712ce5b EAP-pwd: Pre-processing method definitions from RFC 8146 2a5c29188 EAP-pwd: Move EC group initialization to earlier step b829e4b69 Add a QCA vendor command attribute to enable/disable GTX 833bb2ab1 FT: Disable PMKSA caching with FT 91db940ff fst: Fix compile error in fst_ctrl_aux.h with C++ compilers 9be19d0b9 SAE: Add support for using the optional Password Identifier d6a65a83f mesh: Register msg_ctx for hostapd/AP code 4e47eec5a Add QCA NAN vendor attributes to provide IPv6 information 997312964 wolfSSL: Fix crypto_bignum_rshift() wrapper 4b2e03c42 wolfSSL: DH initialization to call TEST_FAIL() for error tests 2b01270c8 wolfSSL: Fix ECDH set peer to use the index when importing point ffff7f709 OWE: Mark connection failed in the unlikely no-bss-entry case 0cc41ee63 Move wpa_supplicant_event() EVENT_ASSOC_REJECT handling into a function bda9c0859 hostapd: Fix CHAN_SWITCH command for VHT20 and VHT40 16d5c9637 OWE: Get the bss from bssid of assoc_reject to try for next group c4dd3afa3 ACS: Avoid invalid interference factor when survey channel time is zero 6965705bf Fix style issues in qca-vendor.h 7d66e7c40 Define new QCA feature flag for self managed regulatory support 38f60142d Define test config vendor attribute for Tx beamformee configuration d109aa6ca SAE: Flush PMKSA if an assoc reject without timeout is received 46053a4c9 wext: Avoid gcc warnings on restricted pointer aliasing ce2a9644b Silence a gcc warning on switch statement fallthrough d267bdf9b Silence new gcc warnings on switch statement fallthroughs 60a5737e8 FT: Clear SME FT data on disassoc 98b806b03 Add QCA vendor attribute for spectral hardware generation d57e06170 wpa_supplicant: Make channel switch event available for non-AP builds d7f038ded wpa_supplicant: Add ieee80211ac information in STATUS ab35793ec wolfSSL: Fix EAP-FAST key derivation 71faf06cb wolfSSL: Do not free cert store after setting it b7f5b0ec6 wolfSSL: Fix OCSP ifdefs ca620a364 wolfSSL: Fix altSubjectName handling 7be462084 wolfSSL: Use defines from wolfssl/options.h 312212174 wolfSSL: Remove aes-omac1.o from hostapd build 385dd7189 wolfSSL: Use wolfSSL memory allocation in dh5_init() 6590d8466 wolfSSL: Load certificates using 'chain' APIs fc5e88e3e wolfSSL: Changes for memory allocation failure testing 06657d316 wolfSSL: Fix crypto_hash_init() memory clearing d39605710 wolfSSL: Fix crypto_ec_point_y_sqr() e3501ac18 wolfSSL: Fix crypto_ec_point_solve_y_coord() 187ad3a30 wolfSSL: Add crypto_ecdh_*() 3d2f638d6 wolfSSL: Use new digest namespace 847665ebe wolfSSL: Fix conditional EAP-FAST compilation issue d501c27cf EAP-TLS server: Disable TLS v1.3 by default e8a7af9a3 EAP-TLS peer: Disable TLS v1.3 by default bbbc7e801 EAP-TLS: Extend TLS version config to allow TLS v1.3 to be disabled 53b34578f OpenSSL: Move server vs. client information into connection data 0de820b33 EAP-TLS peer: MSK/EMSK derivation with TLS v1.3 1854981c7 EAP-TLS peer: Allow NewSessionTicket after Client Finished with TLS v1.3 6dd98483e EAP-TLS peer: Support fragmentation of last message a80423b52 EAP-TLS server: MSK/EMSK derivation with TLS v1.3 bac1bdba3 EAP-TLS peer: Determine whether TLS v1.3 or newer is used fe7b06c5e EAP-TLS server: Determine whether TLS v1.3 or newer is used c26ac1895 Mark eap_server_tls_derive_key() label argument const 34c6949fb EAP-TLS server: Remove trailing whitespace 4a576c473 OpenSSL: Terminate TLS handshake if ClientHello cannot be generated 2439714f9 DPP: Fix testing code for invalid keys with OpenSSL 1.1.1 c456e6e3f HS 2.0: Terms and Conditions server and management 42f416916 HS 2.0: Update server SQL DB initialization to cover new fields 5bd5eb54d HS 2.0: Update server instructions for Ubuntu 16.04 04ee197f8 HS 2.0: Maintain a database of pending T&C acceptance sessions 625a8c86b wpa_cli: Indicate HS20-T-C-ACCEPTANCE to action scripts 6b21df0bb Add QCA vendor command/attr to filter frames from other BSSs 452603809 HS 2.0: Terms and Conditions testing feature in authentication server f456940ef HS 2.0: CoA-Request processing for Terms and Conditions filtering d239ab396 DFS: Mark channels required DFS based on reg-domain info from the driver 7fc6a024f HS 2.0: Process received Terms and Conditions Acceptance notification 8760b9848 HS 2.0: Send Terms and Conditions Acceptance notification 6cb8f4f38 HS 2.0: Terms and Conditions attributes in Access-Request messages 1952b626b hostapd: Add ctrl iface indications for WDS STA interface 2598e6930 FILS: Enable SHA256 KDF even without PMF/SAE in the build 1baa130bd nl80211: Print NL80211_CMD_SET_POWER_SAVE errors in debug log 72b6e5d1e Do not remove CCMP group cipher if any CCMP/GCMP cipher is enabled c4315e662 AP: Handle AP initalization failure in async flow 86c998d37 FT: Add FT auth algorithm to connect params when roaming 3dc3afe29 FT: Add MDE to assoc request IEs in connect params b55c623e4 Make CENTER_FRQ1 available independently in SIGNAL_POLL 4204669c6 HS 2.0: Add Roaming Consortium Selection element into AssocReq 6311547e7 HS 2.0: Add Roaming Consortium Selection network profile parameter 5b7695275 HS 2.0: Use roaming_consortiums list to match OIs for access 2e88032f1 HS 2.0: OSU client to send HomeSP/RoamingConsortiumOI to wpa_supplicant 909a948b0 HS 2.0: Add a new cred block parameter roaming_consortiums 9b6f93e4d HS 2.0: Document credential parameter required_roaming_consortium 67cca3464 HS 2.0: Copy Roaming Consortium OI from (Re)AssocReq to Access-Request 0e450db28 HS 2.0: Allow configuration of operator icons 6a8a04d74 HS 2.0: Add fetching of Operator Icon Metadata ANQP-element 37547ad63 wpa_supplicant: Increase authentication timeout if CAC is started 2dd5fbbff wpa_supplicant: Rename wpas_event_*() to wpas_ap_event_*() f875da044 nl80211: Add MLME auth work-around for -EEXIST errno 4449efeb1 Fix building nt_password_hash with gnutls 5ecdf06c8 DPP: Fix build with LibreSSL v2.5 4b603f01d DPP: Fix X509_ALGOR_get0() use with LibreSSL dee566d98 OpenSSL: Skip SSL_OP_NO_TLSv1_3 if not defined to fix LibreSSL build ba3658cff Fix build with LibreSSL 2.7 a2ab37308 Fix sae_password documentation in wpa_supplicant to refer correct field d5906fbb7 mesh: Properly handle sae_password d6d7debb5 Fix wpa_supplicant build with CONFIG_NO_WPA 852b2f273 SAE: Only allow SAE AKMP for PMKSA caching attempts 06b1a1043 SAE: Fix default PMK configuration for PMKSA caching case 8e402d165 WPA: Fix a typo in a debug message 1bd131105 Clear pmk_len more consistently for extra protection 66dbc8d9c Add more debug prints for wpa_sm_set_pmk() calls 26e0ada47 Define new test config attribute for HE LTF configuration 4d6eb9f2e Fix hostapd wmm_enabled setup on config reload path a6509e850 FT: Add session_timeout to push/resp 3cb286ca4 FT: Add set/get session_timeout callback functions 13f118dc5 Convert STA session_timeout to os_reltime 069b4e304 FT: Include identity and radius_cui in pull/resp frames 9fbe292ff FT: Move wpa_ft_rrb_build_r0() special case to caller 8c345234f FT: Add set/get identity/radius_cui callback functions 17a8a9893 Fix potential memory leak with identity/radius_cui 17010c38d FT: Add IEEE VLAN support (including tagged VLANs) 47a039b01 FT: Add set_vlan()/get_vlan() callback functions 3a3e28320 FT: Add expiration to PMK-R0 and PMK-R1 cache 09211c989 FT: Use dl_list for PMK-R0/R1 cache 89dea17e1 FT: Add helper function for FILS key storing 83fe4bd3b FT: Convert r0_key_lifetime to seconds ee2c6bb5e Remove CONFIG_IEEE80211R_AP=y build option from wpa_supplicant c6b5b9a33 hostapd: Add more authentication error case debugging e2fc13d0a hostapd: Add logging around Michael MIC related failures e7525a295 hostapd: Add send_auth_reply() caller info in debug logging d89edb611 wpa_supplicant: Don't reply to EAPOL if pkt_type is PACKET_OTHERHOST 8fb2b3573 Clean up setting of iface->p2p_mgmt flag d53401c54 dbus: Redirect signal processing to the management device if present e48021276 dbus: Add FILS to global capabilities 208263c01 Add config information related to MACsec e360010c3 dbus: Add mesh to global capabilities 9f917339c tests: Fix clearing of IGTK PN in handshake retransmit test functions 45f7574d3 Propagate the EAP method error code 77a020a11 wpa_supplicant: Fix auth failure when the MAC is updated externally 2ff9696d3 Add definitions for RADIUS attributes standardised in RFC 7055 c17915462 nl80211: Add DFS offload support using upstream nl80211 definitions 1841086ad Sync with mac80211-next.git include/uapi/linux/nl80211.h 7cfe2f001 Add SAR V2 power selection capability (QCA vendor attributes) 7e1d3ee96 Add hostapd.conf venue_url to set Venue URL ANQP-element 64624f31c OWE: Fix CONFIG_OWE=y build without CONFIG_IEEE80211R=y d555c39c4 FILS: Fix CONFIG_FILS=y build without CONFIG_IEEE80211R=y f6de72534 Add NOTE control interface command for hostapd 2f3738781 FILS: Add more complete support for FT-FILS use cases 4ddca8142 FT: Derive PMK-R1 locally if requested PMKR0Name is found 1dc0945cc FT: Do not send PMK-R1 pull request to own R0KH address 1778f1e9a SAE: Fix PTK derivation to use KDF-SHA256 9d94e4bb6 SAE: Fix PMKID in EAPOL-Key msg 1/4 a03f9d17e SAE: Fix FT-SAE key derivation for a case where PMKID in msg 1/4 matches 0fa669bca Fix a resource leak on hostapd maclist parsing error path 10949e248 Do not disable 40 MHz based on co-ex report with matching primary channel 8cbd9c3ed Support multiple 20/40 BSS Intolerant Channel Report elements 8127a0ac0 Ignore intra-BSS 20/40 BSS Coexistence Management from not-associated STA 8aa599d45 Add more debug prints for 20/40 BSS Coexistence Management frame Rx d58c3bd8b hostapd: Ignore LOW_ACK event for co-operative steering clients ec2b5173c Make STA opmode change event available to upper layers e8ada1600 nl80211: Add support for STA opmode change events 72123a84c hostapd: Add last_ack_rssi into ctrl iface cmd STA 2df73f52e Add hostapd_cli poll_sta command f5701cc66 OWE: Clean up pointer check in a testing code path ebe61e564 Sync with mac80211-next.git include/uapi/linux/nl80211.h 8179ae3a2 DPP: Support retrieving of configurator's private key 4bc801ab4 SAE: Fix EAPOL-Key integrity and key-wrap algorithm selection d74963d41 DPP: Extend dpp_test 89 functionality to transmit side f8bfc9cbd Use correct WPA_ALG_* values to compare for enum wpa_alg cce16e43f mka: Mark ieee802_1x_kay_create_mka() ckn and cak arguments const 22151b111 wpa_supplicant: Fix memory leaks in ieee802_1x_create_preshared_mka() 3a52f6b38 mka: Do not print contents of SAK to debug log 77977b3d5 mka: Detect duplicate MAC addresses during key server election 5762855ab mka: Loss of live peers to result in connect PENDING not AUTHENTICATED 8fb546d8e mka: Ignore MACsec SAK Use Old Key parameter if we don't have our old key b54b53e64 mka: When matching CKNs ensure that lengths are identical fec03f983 Add support for wolfSSL cryptographic library 92eb00aec Extend ACL check for Probe Request frames 01542e651 Add new WiFi test config attributes to configure BA params ba6080441 Add new WiFi test config attribute to allow WEP/TKIP in HE c05f96a38 FILS: Check kde more consistently to avoid static analyzer warnings 087474512 SAE: Debug print group support in the crypto library f5e0a3324 SAE: Fix potential infinite loop in mismatching PMK case on AP 427729ee6 Reject eap_server_erp hostapd.conf parameter without CONFIG_ERP=y c54cc8bb1 BoringSSL: Set appropriate sigalgs for Suite B RSA 3K cases aa6de8e6b BoringSSL: Map OpenSSL SUITEB192 cipher into appropriate sigalgs 7a47f34b1 BoringSSL: Map OpenSSL SUITEB192 cipher into appropriate parameters 355250234 OpenSSL: Replace SSL_set1_curves_list() with SSL_set1_curves() 4ab0f11b8 Allow HT40 on 5 GHz channels 165 and 169 299d21e8e nl80211: Use the new NL80211_MFP_OPTIONAL option b8e88d357 wpa_supplicant: Handle port authorized event a8c45d47d nl80211: Handle port authorized event 0a20bd7d9 driver: Add port authorized event 05fc7c68f nl80211: Add API to set the PMK to the driver 0ff08f963 nl80211: Check 4-way handshake offload support 730c5a1d0 nl80211: Support passing PSK on connect 14dcb22a5 wpa_passphrase: Include $(LIBS) for linking 4b07484c3 DPP: Do not include common/dpp.h without CONFIG_DPP=y 9ec0dfa31 Define host_to_le64() for Windows builds 6e3726c09 Fix a typo in disassoc_low_ack documentation 19e20c14f Add ap_isolate configuration option for wpa_supplicant AP mode a4016163e Extend APF interface for read/write and enable/disable ops b2e4074ca OpenSSL: Fix EAP-FAST with OpenSSL 1.1.1-pre1 a22e235fd OWE: Add testing RSNE for OWE assoc response with driver SME/MLME aca4d84e3 DPP: Use wildcard BSSID in GAS query frames 0887215d9 nl80211: Do not try to add too large NL80211_ATTR_PMK for set/del PMKSA e7f6e6ee1 nl80211: Print NL80211_CMD_{SET,DEL}_PMKSA failures in debug log 3988046de hostapd: Dynamic MAC ACL management over control interface 6a252ece2 DPP: Fix GAS query removal race condition on DPP_STOP_LISTEN 3b50f8a46 DPP: PKEX initiation on other bands 659ac96d7 ieee802_11_mgmt: Handle frame info more consistently 458d8984d SAE: Reject request with mismatching PMKID (no PMKSA cache entry) 5ac434642 Define new QCA vendor sub command for wifi test configuration 70e190137 DPP: Require use of PMF for DPP AKM 79ce2d519 OWE: Rename function to match use (driver-SME/MLME) 759da93a8 OWE: Check for ECDH availability before use (driver-SME/MLME) af65ef28f OWE: Add RSNE when not using PMKSA caching (driver-SME/MLME) 5850cba38 OWE: Support DH groups 20 and 21 with driver-SME/MLME f9854c183 hostapd: Fix wpa_psk_file support for FT-PSK 3bd35b681 wpa_supplicant: Fix parsing errors on additional config file 9c5fe742a wpa_supplicant: Free config only if it was allocated in same call 9f8d459d4 OWE: Fix association IEs for transition mode open AP connection c6096c6ee wpa_cli: Enable add/remove/get vendor elements without P2P d1e3d40d0 common: Fix the description of wpa_ctrl_request() function 82424732a Fix compiler issue with CONFIG_TESTING_OPTIONS ebf404373 D-Bus: Report error on starting P2P find 66b9f3ca8 wpa_cli: Fix cred_fields[] declaration 5ff39c138 SAE: Support external authentication offload for driver-SME cases 40a68f338 nl80211: Create a netlink socket handle for the Connect interface ba71cb821 nl80211: Introduce the interface for external authentication 8678b14fa Add new QCA vendor commands for thermal shutdown 99576f6f3 Sync with mac80211-next.git include/uapi/linux/nl80211.h cd483be25 OWE: Use PMKSA caching if available with driver AP MLME a4668c681 OWE: Handle unsupported finite cyclic group with driver MLME f811cc83b atheros: Send correct SSID length to the driver e005725a6 nl80211: Add DPP and OWE AKM selectors to CONNECT/ASSOC request 2cc2a0a7e Extend QCA vendor NDP params to support schedule update indication a7769f6da Update QCA vendor commands to match ASOP 18e3e9c6e OWE: Transition mode with non-AP-MLME 92b6e0c58 hostapd: Send broadcast Public Action frame with wildcard BSSID address fe3f81e6a DPP: Update PKEX role-specific points b4cd8b7e1 Add QCA vendor command and attributes for MSDU queue depth threshold 703470bfa FILS: Fix extended capability bit setting for FILS in AP mode 9e834fc64 EAP-SIM/AKA: Separate identity for MK derivation b6b5e3554 DPP: Get rid of compiler warnings on signed/unsigned comparison 630ea1334 DPP: Track M.x/N.x/L.x availability for ke derivation c1790a5ff OWE: Allow station in transition mode to connect to an open BSS c103c0b51 Extend NUD Stats to collect the data packet statistics 5d5ee699a Copy WLAN-Reason-Code value from Access-Reject to Deauthentication f75ed556c RADIUS: Add WLAN-Reason-Code attribute to Access-Reject 727e9aacb HS 2.0: Set appropriate permission(s) for cert file/folders on Android feba5848b Replace RSNE group key management mismatch status/reason codes 9cc8303d3 Add QCA vendor command to get the WLAN MAC information fd9209549 DPP: Report reception of Config Request to upper layers 80f71b71d DPP: Authentication exchange retries and channel iteration in hostapd c5cc7a59a Report offchannel RX frame frequency to hostapd b7ed94834 GnuTLS: Add option to build with libnettle instead of libgcrypt c36d82241 GnuTLS: Suite B validation dd227e67a GnuTLS: Add support for disabling TLS versions 5d292fcfb GnuTLS: Implement tls_get_cipher() 5791d2117 GnuTLS: Make debug prints clearer for cert/key parsing 622d4d49e GnuTLS: Add TEST_FAIL() to crypto routines for testing purposes f8697e810 GnuTLS: Implement tls_get_version() 133f8d09f GnuTLS: Implement HMAC functions using libgcrypt 85c12a62e GnuTLS: Implement sha{256,384,512}_vector() using libgcrypt cc3e7bfc3 GnuTLS: Use a helper function for hash functions 2cb40e9f4 OWE: Try all supported DH groups automatically on STA 02b38d0ad Fix MFP-enabled test for disallowed TKIP ba3d435fe SAE: Add option to require MFP for SAE associations c4fc7e31c SAE: Set special Sc value when moving to Accepted state abcbd0604 SAE: Add Rc variable and peer send-confirm validation 9249afc8e SAE: Print state changes in debug log d8b841eba SAE: Make dot11RSNASAESync configurable 9596a7565 PAE: Remove OpenSSL header dependency 04b1bcc5f EAP-pwd: Use abstract crypto API 0c3d49afd EAP-EKE: Use abstract crypto API c335507c8 Enhance crypto abstract API for DH 0e02f2a9f crypto: Implement new crypto API functions for DH eac084cb3 OpenSSL: Implement new crypto API functions 23ff5d73d Enhance crypto abstract API 441e8bfbb Fix copy-paste errors in function comments 47e966aba DH: Remove trailing whitespace 3546ef510 EAP-pwd: Remove trailing empty line 61536b5f4 Add new QCA vendor attribute for getting preferred channel 1a2cb20d5 Fix couple of QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS comments 2fca2d214 Vendor parameter for forcing RSNE override 12bce14b1 wpa_cli: Add completion for get/set cred commands 6240424a7 dbus: Add FILS key mgmt values into BSS security properties 2d942ec4a Define a QCA vendor command to retrieve SAR Power limits d98038bb0 FILS: Driver configuration to disable/enable FILS features af832aa99 hostapd: Add average channel utilization in STATUS 802c0fd0c hostapd: Update BSS load update period dynamically 778d87054 Fix error handling in bss_load_update_period parser dff5ab97e hostapd_cli: Add dpp_listen and dpp_stop_listen 5f30b69cd OWE: Allow DH Parameters element overriding with driver SME 04ded82ef OWE: Fix error case handling with drivers that implement AP SME c23e87d0d OpenSSL: Replace EVP_PKEY_paramgen() with EC_KEY_new_by_curve_name() 7641d485d BoringSSL: Use EC_KEY_new_by_curve_name() to simplify implementation a5da39607 Revert "BoringSSL: Add DPP special cases regardless of claimed version number" 0f3084472 Revert "BoringSSL: Define RSA_bits() helper" a2c442be2 OpenSSL: Allow cipher list to be overridden for tls_suiteb=1 case e5c7c2f28 Fix ap-mgmt-fuzzer build 63942cf0f OpenSSL: Avoid SSL*_use_default_passwd_cb() 149143e31 OpenSSL: Remove unnecessary os_strdup() from password callback b65353a76 Android: Set CONFIG_NO_RANDOM_POOL=y ff28df739 Android: Move hostapd to vendor partition 9b0de99fa Add new QCA vendor attribute for WLAN Latency Module (WLM) 055cd3978 tests: DPP P-256 test vectors f55269753 DPP: Allow protocol key to be overridden for testing purposes afd3cf14a WPS: Add GCMP-256 and CCMP-256 cipher options on Enrollee 5f481b6fd WPS: Check BSS table against current BSSID if credential does not match 402c8e00b WPS: Map GCMP-256 and CCMP-256 to AES encryption type a2660890a WPS: Allow WPS to be enabled in CCMP-256 and GCMP-256 only cases 163fc3d56 DPP: Indicate to upper layers whether mutual authentication was used 34603767b DPP: Extend protocol testing to allow exchange termination ed2c493e9 DPP: Change Authentication Response retry time to 1 second 963d3149a nl80211: Fix NL80211_MESHCONF_AUTO_OPEN_PLINKS encoding a2426829c nl80211: Fix NL80211_ATTR_SMPS_MODE encoding f0a383a98 DPP: Extend dpp_test with invalid E-Nonce in Config Req 55c6c8585 DPP: Extend dpp_test with invalid Transaction ID in Peer Disc Req 364039d22 Add QCA vendor command and attributes for RROP 0e19300d5 nl80211: Use consistent "0x" prefix for the cookie values fa5c90749 DPP: Call wpas_dpp_stop() from wpas_dpp_deinit() 1866dfb52 DPP: Stop pending GAS client operation on DPP_STOP_LISTEN f981ce729 DPP: Do not continue if public key hash derivation fails 8a37d54ea DPP: Fix memory leak on dpp_auth_build_conf() error paths 281f480c5 JSON: Fix a memory leak on an error path 622934128 DPP: Fix a memory leak on an error path ed62d4011 DPP: Deinit PKEX instance on DPP_STOP_LISTEN 634a130a5 DPP: Clear authentication instance on configuration completion in AP d3cb7ebe1 DPP: Do not process dpp_auth_ok_on_ack multiple times dc2f24f1b DPP: Fix compilation without CONFIG_TESTING_OPTIONS=y 82feacced DPP: Ignore GAS server status callback for unknown response a2588be82 DPP: Add DPP_CONFIGURATOR_SIGN support to hostapd 7eb6bfb45 DPP: Move hostapd Configurator/bootstrap data into global context 73f21929a DPP: Auto-generate Initiator bootstrapping info if needed 725a953ae nl80211: Filter global events based on wiphy 0bd7f104c hostapd: Add supported rate information into STATUS and STA 1489fcf87 FILS: Do not leave error value in left counter beae255a7 WPA: Check wpa_eapol_key_mic() result on TX acc555f9e DPP: Allow PKEX x/X and y/Y keypairs to be overridden d722c50d0 DPP: Print more interim EC_POINT results into debug log 2bdc47a94 DPP: Allow PKEX own/peer MAC addresses to be overridden af4103e5e DPP: Provide peer_mac to PKEX Initiator through function argument 918a2ac40 DPP: Work around missing EVP_PKEY_CTX_set_ec_param_enc() 3ca4be1ea DPP: Remove compiler warnings about signed/unsigned comparisons 116454f46 DPP: Fix error return value in dpp_auth_conf_rx() 63dc0f9c4 hostapd: Disassoc STA without WPA/RSN IE if AP proto is WPA/RSN cc79e06f0 hostapd: Add wpa_msg_ctrl() to report Probe Request frames from STA 0db637ca8 DPP: Fix number of Authentication Request retry cases 921f5acd1 DPP: Take response wait time into account for init retries 248264c62 DPP: Stop Authentication Request attempts if no response after ACK e3a5882b3 DPP: Add SAE credential support to Configurator 5dd745b73 DPP: Add akm=sae and akm=psk+sae support in Enrollee role a44467395 DPP: Protocol testing capability to send invalid I-Nonce in Auth Req 00d2d13db DPP: Retry PKEX Exchange Request frame up to five times ab0375508 TDLS: Add testing capability to send TPK M2 twice 4b8de0c92 DPP: Protocol testing for invalid Peer Discovery Req/Resp values f9cf7d03f DPP: Protocol testing for invalid Config Attrib Object value 3f35ec2dc DPP: Protocol testing for invalid DPP Status value 9efa53149 DPP: Use helper functions to build Bootstrap Key Hash attributes acdf703d5 DPP: Replace custom undefined attr with DPP Status in after-wrapped data 56f24d1da DPP: Use a helper function to build DPP Status attribute 65ecce87f DPP: Protocol testing for writing invalid I/R Bootstrap Key Hash b6b4226bd DPP: Protocol testing capability to generate invalid Protocol Key c6eb3e34b Stronger GTK derivation routine 94619905c DPP: Fix dpp_test_gen_invalid_key() with BoringSSL 746c1792a DPP: Build bootstrapping key DER encoding using custom routine f2d27ef94 DPP: Use a helper function to DER encode bootstrapping key c1564149a BoringSSL: Add AES support with 192-bit keys edd72f55f OpenSSL: Debug message if requested AES key length is not supported 5548453a2 BoringSSL: Add DPP special cases regardless of claimed version number f29761297 BoringSSL: Implement crypto_ecdh_init() 7721fe082 BoringSSL: Comment out SSL_set_default_passwd_cb*() calls b9dc63c26 BoringSSL: Comment out SSL_set1_sigalgs_list() call 3cfbd3b0f BoringSSL: Define RSA_bits() helper 27781c0ab Allow group cipher selection to be overridden af6614ca1 Fix block comment style in QCA vendor attribute definition 2115603a4 Add QCA_NL80211_VENDOR_SUBCMD_PEER_FLUSH_PENDING 27987b67f Add new QCA vendor attribute for LL stats 41db74cf7 atheros: Process SAE authentication frames using EVENT_RX_MGMT 3d9dd4b77 atheros: Generate EVENT_TX_STATUS events for management frames f5b74b966 common: Avoid conflict with __bitwise macro from linux/types.h 4109555ef DPP: Fix compiler warning of testing code 1d624a070 Reject PMK-to-PTK derivation with unsupported cipher 762fb4f06 DPP: Testing capability to send unexpected Authentication Response 03abb6b54 DPP: Reject unexpected Req/Resp message based on Auth/PKEX role 95b0104a3 DPP: Retransmit DPP Authentication Response frame if it is not ACKed c1d377396 DPP: Stop authentication exchange of DPP_STOP_LISTEN d1f082644 DPP: Allowed initiator to indicate either role f97ace34c DPP: Support multiple channels for initiating DPP Authentication de0298618 DPP: Share a helper function for PKEX final steps a306ed5a5 DPP: Protocol testing to allow missing attributes in peer discovery 1fafdf112 DPP: Add DPP_LISTEN and DPP_STOP_LISTEN to hostapd fbfceef3a Add QCA vendor commands for spectral scan bb9808fa9 P2P: Continue P2P_WAIT_PEER_(IDLE/CONNECT) sequence on a listen cancel 37ed3254d P2P: ACS offload for the autonomous GO 962b8fcf4 Add new QCA vendor attributes for MAC counters af7f10fcd DPP: Protocol testing for invalid Config Resp attribute values 8c99e6264 DPP: Report Config Request/Response failure reasons on control interface f411ad1b8 DPP: Protocol testing to remove attributes from Config Req/Resp 7e0ebe21b DPP: Protocol testing - invalid I/R-Auth value in PKEX Commit-Reveal 89d0bf678 DPP: Protocol testing - invalid Bootstrap Key value in PKEX Commit-Reveal f31ef96dc DPP: Protocol testing - invalid Status value in PKEX Exchange Response d05c82c4d DPP: Move PKEX z derivation on Responder to earlier phase 578c9ea1a DPP: Fix a typo in a debug print 5f5fff436 DPP: Explicitly check that PKEX Qr is not the point-at-infinity 29ab69e4b DPP: PKEX counter t 039b8e736 DPP: Terminate PKEX exchange on detection of a mismatching code fc0efa2a1 DPP: Use dpp_bn2bin_pad() helper to simplify code e0247e798 DPP: PKEX and STATUS_BAD_GROUP 2265353a4 DPP: Remove obsolete TODO comment on discovery object fe12ae777 Fix Status Code in TKIP countermeasures case 1cfcbd32a DPP: Testing capability to generate invalid PKEX encrypted key (M and N) d7e7b7122 DPP: Report PKEX failure reasons over control interface 61f9f27f8 DPP: Extend protocol testing to cover missing attributes in PKEX b3e4cc5cb DPP: Move PKEX Commit-Reveal Response building to a helper function b0626c2a6 DPP: Move PKEX Commit-Reveal Request building to a helper function a5c3b41b2 DPP: Move PKEX Exchange Response building to a helper function 60b9dd86f DPP: Fix couple of typos in debug messages 06f2df069 DPP: Fix hostapd control interface events for initiator case 219d4c9fc DPP: Report possible PKEX code mismatch in control interface 69d8d029f DPP: Enable PMF when adding wpa_supplicant network profile 0c3bc1be0 Fix test build breakage when not compiling with ieee80211w support ea4ace9c7 hostapd: Add max_txpower into STATUS command bf6c65afc hostapd: Add Beacon interval and DTIM period into STATUS command c7ae2b310 hostapd: Add HT/VHT capability info into STATUS command 1f91a8bde hostapd: Add HT/VHT capability info into STA command 65f9db6bc hostapd: Add extended capabilities into STA command d1f3a8144 hostapd: Add [HT] flag into STA command ba72b4b12 hostapd: Add Min/Max Transmit Power Capability into STA command 33c8bbd8c OWE: Add AP mode handling of OWE with drivers that implement SME 28d126413 Check hostapd current_mode before dereferencing it in additional places 348c93847 AP-side workaround for WNM-Sleep Mode GTK/IGTK reinstallation issues 3f5a1860a wpa_auth: Deplete group rekey eloop handler for strict rekeying 92662fb28 Allow forcing group rekeying for testing purposes d27092069 DPP: Negotiation channel change request from Initiator b7dddab7b DPP: Allow testing override values to be cleared e85b66012 DPP: Add DPP Status attribute into Peer Discovery Response 19ef4289c DPP: Process Authentication Confirm failure cases 7d917ab04 DPP: Send Authentication Confirm failure reports 978bc3f2a DPP: Auth Resp/Conf incorrect attribute values for protocol testing 9b5111203 DPP: Allow Responder to decide not to use mutual authentication dcdaeab79 DPP: Report Auth Conf failures in control interface f9c7d7702 DPP: Omission of Auth Conf attributes for protocol testing 26806abe8 DPP: Report invalid messages and failure conditions in control interface ce9acce00 DPP: Omission of Auth Resp attributes for protocol testing a03406dbe DPP: Move Authentication Response building into a separate function 0e7cb8c6c DPP: Omission of Auth Req attributes for protocol testing 606a8e8d5 DPP: Move Authentication Request building into a separate function 3749ad0e1 DPP: Explicitly check and reject 0x00 and 0x03 I/R-capab role af48810ba DPP: Report transmitted messages as control interface events a70739349 DPP: Report received messages as control interface events 27fefbbb7 DPP: Remove unnecessary Wrapped Data checks from callers 0c881807b DPP: Verify that Wrapped Data attribute is the last one in the message 60239f60a DPP: Protocol testing framework 7ed5337d8 Fix a typo in a debug message 5f7c9e50f EAP server: Add event messages for more EAP states a68e0d869 Fix a typo in a comment (the variable is ptk, not pkt) de41b960b wpa_supplicant: Increase UDP control interface RX buffer 74e55b658 Fix test build breakage when not compiling with mesh support 3d0fb9558 WNM: Ignore BSS Transition Management frames in bss_transition=0 case 114f2830d WNM: Ignore WNM-Sleep Mode Request in wnm_sleep_mode=0 case Bug: 111131936 Test: Device boots up and connects to wifi networks. Test: Able to turn on/off softap. Test: Sent for regression tests (b/111209415). Change-Id: I85cbeeee6a4ff52a5e23f8917b15633c896c0cf3 Signed-off-by: Roshan Pius <rpius@google.com>
Diffstat (limited to 'src/rsn_supp/pmksa_cache.c')
-rw-r--r--src/rsn_supp/pmksa_cache.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/rsn_supp/pmksa_cache.c b/src/rsn_supp/pmksa_cache.c
index f5024f20..fdd52208 100644
--- a/src/rsn_supp/pmksa_cache.c
+++ b/src/rsn_supp/pmksa_cache.c
@@ -96,7 +96,7 @@ static void pmksa_cache_set_expiration(struct rsn_pmksa_cache *pmksa)
eloop_register_timeout(sec + 1, 0, pmksa_cache_expire, pmksa, NULL);
entry = pmksa->sm->cur_pmksa ? pmksa->sm->cur_pmksa :
- pmksa_cache_get(pmksa, pmksa->sm->bssid, NULL, NULL);
+ pmksa_cache_get(pmksa, pmksa->sm->bssid, NULL, NULL, 0);
if (entry) {
sec = pmksa->pmksa->reauth_time - now.sec;
if (sec < 0)
@@ -341,17 +341,20 @@ void pmksa_cache_deinit(struct rsn_pmksa_cache *pmksa)
* @aa: Authenticator address or %NULL to match any
* @pmkid: PMKID or %NULL to match any
* @network_ctx: Network context or %NULL to match any
+ * @akmp: Specific AKMP to search for or 0 for any
* Returns: Pointer to PMKSA cache entry or %NULL if no match was found
*/
struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
const u8 *aa, const u8 *pmkid,
- const void *network_ctx)
+ const void *network_ctx,
+ int akmp)
{
struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
while (entry) {
if ((aa == NULL || os_memcmp(entry->aa, aa, ETH_ALEN) == 0) &&
(pmkid == NULL ||
os_memcmp(entry->pmkid, pmkid, PMKID_LEN) == 0) &&
+ (!akmp || akmp == entry->akmp) &&
(network_ctx == NULL || network_ctx == entry->network_ctx))
return entry;
entry = entry->next;
@@ -390,6 +393,7 @@ pmksa_cache_clone_entry(struct rsn_pmksa_cache *pmksa,
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_init()
* @network_ctx: Network configuration context
* @aa: Authenticator address for the new AP
+ * @akmp: Specific AKMP to search for or 0 for any
* Returns: Pointer to a new PMKSA cache entry or %NULL if not available
*
* Try to create a new PMKSA cache entry opportunistically by guessing that the
@@ -398,7 +402,7 @@ pmksa_cache_clone_entry(struct rsn_pmksa_cache *pmksa,
*/
struct rsn_pmksa_cache_entry *
pmksa_cache_get_opportunistic(struct rsn_pmksa_cache *pmksa, void *network_ctx,
- const u8 *aa)
+ const u8 *aa, int akmp)
{
struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
@@ -406,7 +410,8 @@ pmksa_cache_get_opportunistic(struct rsn_pmksa_cache *pmksa, void *network_ctx,
if (network_ctx == NULL)
return NULL;
while (entry) {
- if (entry->network_ctx == network_ctx) {
+ if (entry->network_ctx == network_ctx &&
+ (!akmp || entry->akmp == akmp)) {
entry = pmksa_cache_clone_entry(pmksa, entry, aa);
if (entry) {
wpa_printf(MSG_DEBUG, "RSN: added "
@@ -476,11 +481,13 @@ void pmksa_cache_clear_current(struct wpa_sm *sm)
*/
int pmksa_cache_set_current(struct wpa_sm *sm, const u8 *pmkid,
const u8 *bssid, void *network_ctx,
- int try_opportunistic, const u8 *fils_cache_id)
+ int try_opportunistic, const u8 *fils_cache_id,
+ int akmp)
{
struct rsn_pmksa_cache *pmksa = sm->pmksa;
wpa_printf(MSG_DEBUG, "RSN: PMKSA cache search - network_ctx=%p "
- "try_opportunistic=%d", network_ctx, try_opportunistic);
+ "try_opportunistic=%d akmp=0x%x",
+ network_ctx, try_opportunistic, akmp);
if (pmkid)
wpa_hexdump(MSG_DEBUG, "RSN: Search for PMKID",
pmkid, PMKID_LEN);
@@ -495,14 +502,14 @@ int pmksa_cache_set_current(struct wpa_sm *sm, const u8 *pmkid,
sm->cur_pmksa = NULL;
if (pmkid)
sm->cur_pmksa = pmksa_cache_get(pmksa, NULL, pmkid,
- network_ctx);
+ network_ctx, akmp);
if (sm->cur_pmksa == NULL && bssid)
sm->cur_pmksa = pmksa_cache_get(pmksa, bssid, NULL,
- network_ctx);
+ network_ctx, akmp);
if (sm->cur_pmksa == NULL && try_opportunistic && bssid)
sm->cur_pmksa = pmksa_cache_get_opportunistic(pmksa,
network_ctx,
- bssid);
+ bssid, akmp);
if (sm->cur_pmksa == NULL && fils_cache_id)
sm->cur_pmksa = pmksa_cache_get_fils_cache_id(pmksa,
network_ctx,