Home | History | Annotate | Download | only in wpa_supplicant
      1 To do:
      2 - hostap: try other roaming modes
      3   NOTE: current mode (manual roaming) does not really roam at all..
      4   Firmware did not notice the current AP disappearing..
      5 - add support for WPA with ap_scan=0 (update selected cipher etc. based on
      6   AssocInfo; make sure these match with configuration)
      7 - optional security separation (build time option): run EAPOL state machines
      8   as non-root (need to add something like socketpair between privileged root
      9   process and non-root handler; send EAPOL packets between processes
     10   and send keying data from non-root -> privileged)
     11   EAPOL-Key processing (WPA & WEP keys) could be in privileged part
     12   at least in the beginning; some parts might end up being moved to
     13   non-root part eventually
     14 - consider closing smart card / PCSC connection when EAP-SIM/EAP-AKA
     15   authentication has been completed (cache scard data based on serial#(?)
     16   and try to optimize next connection if the same card is present for next
     17   auth)
     18 - EAP-AKA: AT_CHECKCODE
     19 - EAP-SIM/AKA: AT_RESULT_IND
     20 - on disconnect event, could try to associate with another AP if one is
     21   present in scan results; would need to update scan results periodically..
     22 - if driver/hw is not WPA2 capable, must remove WPA_PROTO_RSN flag from
     23   ssid->proto fields to avoid detecting downgrade attacks when the driver
     24   is not reporting RSN IE, but msg 3/4 has one
     25 - Cisco AP and non-zero keyidx for unicast -> map to broadcast
     26   (actually, this already works with driver_ndis; so maybe just change
     27   driver_*.c to do the mapping for drivers that cannot handle non-zero keyidx
     28   for unicast); worked also with Host AP driver and madwifi
     29 - IEEE 802.1X and key update with driver_ndis?? wpa_supplicant did not seem
     30   to see unencrypted EAPOL-Key frames at all..
     31 - EAP-PAX with PAX_SEC
     32 - EAP (RFC 3748)
     33   * OTP Extended Responses (Sect. 5.5)
     34 - test what happens if authenticator sends EAP-Success before real EAP
     35   authentication ("canned" Success); this should be ignored based on
     36   RFC 3748 Sect. 4.2
     37 - test compilation with gcc -W options (more warnings?)
     38   (Done once; number of unused function arguments still present)
     39 - add proper support for using dot11RSNAConfigSATimeout
     40 - ctrl_iface: get/set/remove blob
     41 - use doc/docbook/*.sgml and docbook2{txt,html,pdf} to replace README and
     42   web pages including the same information.. i.e., have this information only
     43   in one page; how to build a PDF file with all the SGML included?
     44 - test wait-for-interface and daemonize combinations with number of driver
     45   interfaces
     46   * 'test' worked with WPA-PSK
     47 - EAP-POTP/RSA SecurID profile (draft-nystrom-eap-potp-03.txt)
     48 - document wpa_gui build and consider adding it to 'make install'
     49 - test madwifi with pairwise=TKIP group=WEP104
     50 - possibility to link in WPA Authenticator state machine to wpa_supplicant
     51   (new STAKey handshake, WPA2 IBSS)
     52 - consider merging hostapd and wpa_supplicant PMKSA cache implementations
     53 - add support for configuring password for MSCHAPv2 as NtPasswordHash in
     54   the same way as was added to hostapd (hash:<hex value>)
     55 - test_driver: configure directory and create AP-<mac> and STA-<mac> files
     56   there to allow scanning multiple APs (e.g., for testing pre-auth and PMKSA
     57   caching testing) and to exchange STA-STA EAPOL frames
     58 - consider adding generic buffer functionality that could be used in number
     59   of places
     60   * allocate buffer (with default max size), allow reserving head room to
     61     make it possible to add a header without having to reallocate buffer
     62   * reallocate buffer (add head and/or tail room)
     63   * ref count and free when count=0 ?
     64   * add data (to tail): re-alloc more tailroom if needed and copy new data
     65   * error flag so that caller can do multiple add()s and only in the end
     66     check whether something has failed; this should make error handling
     67     simpler
     68 - consider redesigning pending EAP requests (identity/password/otp from
     69   ctrl_iface) by moving the retrying of the previous request into EAP
     70   state machine so that EAPOL state machine is not needed for this
     71 - rfc4284.txt (network selection for eap)
     72 - www pages about configuring wpa_supplicant:
     73   * global options (ap_scan, ctrl_interfaces) based on OS/driver
     74   * network block
     75   * key_mgmt selection
     76   * WPA parameters
     77   * EAP options (one page for each method)
     78   * "configuration wizard" (step 1: select OS, step 2: select driver, ...) to
     79     generate example configuration
     80 - error path in rsn_preauth_init: should probably deinit l2_packet handlers
     81   if something fails; does something else need deinit?
     82 - consider moving SIM card functionality (IMSI fetching) away from eap.c;
     83   this should likely happen before EAP is initialized for authentication;
     84   now IMSI is read only after receiving EAP-Identity/Request, but since it is
     85   really needed for all cases, reading IMSI and generating Identity string
     86   could very well be done before EAP has been started
     87 - test all allowed EAP Phase 2 methods (i.e., anything else than PEAP, TTLS,
     88   FAST): SIM AKA PAX PSK LEAP; if these work, include in eap_testing.txt; if
     89   not, either fix or make eap_allowed_phase2_type reject
     90 - try to work around race in receiving association event and first EAPOL
     91   message
     92 - helper function to do memcmp(addr, "\x00\x00\x00\x00\x00\x00", ETH_ALEN)
     93 - add wpa_secure_memzero() macro and secure implementation (volatile u8*) to
     94   clear memory; this would be used to clear temporary buffers containing
     95   private data (e.g., keys); the macro can be defined to NOP in order to save
     96   space (i.e., no code should depend on the macro doing something)
     97 - make sure that TLS session cache is not shared between EAP types or if it
     98   is, that the cache entries are bound to only one EAP type; e.g., cache entry
     99   created with EAP-TLS must not be allowed to do fast re-auth with EAP-TTLS
    100 - consider moving eap_tls_build_ack() call into eap_tls_process_helper()
    101   (it seems to be called always if helper returns 1)
    102   * could need to modify eap_{ttls,peap,fast}_decrypt to do same
    103 - add support for fetching full user cert chain from Windows certificate
    104   stores even when there are intermediate CA certs that are not in the
    105   configured ca_cert store (e.g., ROOT) (they could be, e.g., in CA store)
    106 
    107 
    108 0.6.x branch:
    109 - clean up common.[ch]
    110 - change TLS/crypto library interface to use a structure of function
    111   pointers and helper inline functions (like driver_ops) instead of
    112   requiring every TLS wrapper to implement all functions
    113 - move from CVS to git (0.3.x, 0.4.x, 0.5.x releases will continue
    114   to be updated only on CVS)
    115 - move files into subdirectories and combine wpa_supplicant and hostapd
    116   into a repository that matches in directory structure with the release
    117   tarballs
    118   (subdirs: eap_common, eap_peer, eap_server, driver, driver_ap, ...)
    119 - make it clearer that EAP server/peer can be used as a separate library
    120   for other programs
    121 - add support for encrypted configuration fields (e.g., password, psk,
    122   passphrase, pin)
    123 - wpa_gui: add support for setting and showing priority, id_str, auth_alg
    124   (open/shared for static WEP)
    125