1*03f9172cSAndroid Build Coastguard WorkerTo do: 2*03f9172cSAndroid Build Coastguard Worker- add support for WPA with ap_scan=0 (update selected cipher etc. based on 3*03f9172cSAndroid Build Coastguard Worker AssocInfo; make sure these match with configuration) 4*03f9172cSAndroid Build Coastguard Worker- consider closing smart card / PCSC connection when EAP-SIM/EAP-AKA 5*03f9172cSAndroid Build Coastguard Worker authentication has been completed (cache scard data based on serial#(?) 6*03f9172cSAndroid Build Coastguard Worker and try to optimize next connection if the same card is present for next 7*03f9172cSAndroid Build Coastguard Worker auth) 8*03f9172cSAndroid Build Coastguard Worker- if driver/hw is not WPA2 capable, must remove WPA_PROTO_RSN flag from 9*03f9172cSAndroid Build Coastguard Worker ssid->proto fields to avoid detecting downgrade attacks when the driver 10*03f9172cSAndroid Build Coastguard Worker is not reporting RSN IE, but msg 3/4 has one 11*03f9172cSAndroid Build Coastguard Worker- Cisco AP and non-zero keyidx for unicast -> map to broadcast 12*03f9172cSAndroid Build Coastguard Worker (actually, this already works with driver_ndis; so maybe just change 13*03f9172cSAndroid Build Coastguard Worker driver_*.c to do the mapping for drivers that cannot handle non-zero keyidx 14*03f9172cSAndroid Build Coastguard Worker for unicast); worked also with Host AP driver and madwifi 15*03f9172cSAndroid Build Coastguard Worker- IEEE 802.1X and key update with driver_ndis?? wpa_supplicant did not seem 16*03f9172cSAndroid Build Coastguard Worker to see unencrypted EAPOL-Key frames at all.. 17*03f9172cSAndroid Build Coastguard Worker- EAP-PAX with PAX_SEC 18*03f9172cSAndroid Build Coastguard Worker- EAP (RFC 3748) 19*03f9172cSAndroid Build Coastguard Worker * OTP Extended Responses (Sect. 5.5) 20*03f9172cSAndroid Build Coastguard Worker- test what happens if authenticator sends EAP-Success before real EAP 21*03f9172cSAndroid Build Coastguard Worker authentication ("canned" Success); this should be ignored based on 22*03f9172cSAndroid Build Coastguard Worker RFC 3748 Sect. 4.2 23*03f9172cSAndroid Build Coastguard Worker- test compilation with gcc -W options (more warnings?) 24*03f9172cSAndroid Build Coastguard Worker (Done once; number of unused function arguments still present) 25*03f9172cSAndroid Build Coastguard Worker- ctrl_iface: get/remove blob 26*03f9172cSAndroid Build Coastguard Worker- use doc/docbook/*.sgml and docbook2{txt,html,pdf} to replace README and 27*03f9172cSAndroid Build Coastguard Worker web pages including the same information.. i.e., have this information only 28*03f9172cSAndroid Build Coastguard Worker in one page; how to build a PDF file with all the SGML included? 29*03f9172cSAndroid Build Coastguard Worker- EAP-POTP/RSA SecurID profile (RFC 4793) 30*03f9172cSAndroid Build Coastguard Worker- document wpa_gui build and consider adding it to 'make install' 31*03f9172cSAndroid Build Coastguard Worker- consider merging hostapd and wpa_supplicant PMKSA cache implementations 32*03f9172cSAndroid Build Coastguard Worker- consider redesigning pending EAP requests (identity/password/otp from 33*03f9172cSAndroid Build Coastguard Worker ctrl_iface) by moving the retrying of the previous request into EAP 34*03f9172cSAndroid Build Coastguard Worker state machine so that EAPOL state machine is not needed for this 35*03f9172cSAndroid Build Coastguard Worker- rfc4284.txt (network selection for eap) 36*03f9172cSAndroid Build Coastguard Worker- www pages about configuring wpa_supplicant: 37*03f9172cSAndroid Build Coastguard Worker * global options (ap_scan, ctrl_interfaces) based on OS/driver 38*03f9172cSAndroid Build Coastguard Worker * network block 39*03f9172cSAndroid Build Coastguard Worker * key_mgmt selection 40*03f9172cSAndroid Build Coastguard Worker * WPA parameters 41*03f9172cSAndroid Build Coastguard Worker * EAP options (one page for each method) 42*03f9172cSAndroid Build Coastguard Worker * "configuration wizard" (step 1: select OS, step 2: select driver, ...) to 43*03f9172cSAndroid Build Coastguard Worker generate example configuration 44*03f9172cSAndroid Build Coastguard Worker- error path in rsn_preauth_init: should probably deinit l2_packet handlers 45*03f9172cSAndroid Build Coastguard Worker if something fails; does something else need deinit? 46*03f9172cSAndroid Build Coastguard Worker- consider moving SIM card functionality (IMSI fetching) away from eap.c; 47*03f9172cSAndroid Build Coastguard Worker this should likely happen before EAP is initialized for authentication; 48*03f9172cSAndroid Build Coastguard Worker now IMSI is read only after receiving EAP-Identity/Request, but since it is 49*03f9172cSAndroid Build Coastguard Worker really needed for all cases, reading IMSI and generating Identity string 50*03f9172cSAndroid Build Coastguard Worker could very well be done before EAP has been started 51*03f9172cSAndroid Build Coastguard Worker- try to work around race in receiving association event and first EAPOL 52*03f9172cSAndroid Build Coastguard Worker message 53*03f9172cSAndroid Build Coastguard Worker- try to work around race in configuring PTK and sending msg 4/4 (some NDIS 54*03f9172cSAndroid Build Coastguard Worker drivers with ndiswrapper end up not being able to complete 4-way handshake 55*03f9172cSAndroid Build Coastguard Worker in some cases; extra delay before setting the key seems to help) 56*03f9172cSAndroid Build Coastguard Worker- make sure that TLS session cache is not shared between EAP types or if it 57*03f9172cSAndroid Build Coastguard Worker is, that the cache entries are bound to only one EAP type; e.g., cache entry 58*03f9172cSAndroid Build Coastguard Worker created with EAP-TLS must not be allowed to do fast re-auth with EAP-TTLS 59*03f9172cSAndroid Build Coastguard Worker- consider moving eap_peer_tls_build_ack() call into 60*03f9172cSAndroid Build Coastguard Worker eap_peer_tls_process_helper() 61*03f9172cSAndroid Build Coastguard Worker (it seems to be called always if helper returns 1) 62*03f9172cSAndroid Build Coastguard Worker * could need to modify eap_{ttls,peap,fast}_decrypt to do same 63*03f9172cSAndroid Build Coastguard Worker- add support for fetching full user cert chain from Windows certificate 64*03f9172cSAndroid Build Coastguard Worker stores even when there are intermediate CA certs that are not in the 65*03f9172cSAndroid Build Coastguard Worker configured ca_cert store (e.g., ROOT) (they could be, e.g., in CA store) 66*03f9172cSAndroid Build Coastguard Worker- clean up common.[ch] 67*03f9172cSAndroid Build Coastguard Worker- change TLS/crypto library interface to use a structure of function 68*03f9172cSAndroid Build Coastguard Worker pointers and helper inline functions (like driver_ops) instead of 69*03f9172cSAndroid Build Coastguard Worker requiring every TLS wrapper to implement all functions 70*03f9172cSAndroid Build Coastguard Worker- add support for encrypted configuration fields (e.g., password, psk, 71*03f9172cSAndroid Build Coastguard Worker passphrase, pin) 72*03f9172cSAndroid Build Coastguard Worker- wpa_gui: add support for setting and showing priority 73*03f9172cSAndroid Build Coastguard Worker- cleanup TLS/PEAP/TTLS/FAST fragmentation: both the handshake and Appl. Data 74*03f9172cSAndroid Build Coastguard Worker phases should be able to use the same functions for this; 75*03f9172cSAndroid Build Coastguard Worker the last step in processing sent should be this code and rest of the code 76*03f9172cSAndroid Build Coastguard Worker should not need to care about fragmentation at all 77*03f9172cSAndroid Build Coastguard Worker- test EAP-FAST peer with OpenSSL and verify that fallback to full handshake 78*03f9172cSAndroid Build Coastguard Worker (ServerHello followed by something else than ChangeCipherSpec) 79