Hide Forgot
NetworkManager should be ported to use NSS library for cryptography. See the tracking bug for details and links on how it could be done.
Out of interest, what crypto does NetworkManager do internally?
The version which was examined (0.6.4) contained internal implementations of SHA-1 and MD-5.
We should be looking at 0.7, which has the following requirements: 1) SHA1 (for WPA passphrase hashing) and MD5 (for WEP passphrase hashing and small hash table key generation) 2) PEM and DER certificate verification: ensuring that the data in a random file the user specifies is in fact a PEM or DER certificate 3) Decrypting PEM or DER private keys with a given passphrase: since we do not want wpa_supplicant reading all over the drive for security reasons (and easier ability to lock down a network-facing root-level daemon), we do not pass certificate/key paths to the supplicant. Instead, the user agent that stores the file path (nm-applet in most cases) decrypts the private key with the given user passphrase (which is also stored in the user session keyring) and sends the decrypted private key to NetworkManager, which forwards the key or certificate data to the supplicant as a binary blob. The _ideal_ situation with NSS is that NetworkManager would require that all certificates and private keys be imported into the user or system certificate databases, and then NM would simply pass a token down to the supplicant, which would then query the certificate database for the appropriate data. However, there is no NSS backend for wpa_supplicant at this time, thus somebody would have to write one. wpa_supplicant currently uses OpenSSL to perform the certificate verification, encryption, and other operations required by WPA and WPA2 Enterprise standards. It would need access to _both_ the user's and system certificate database unless we require all users to import their certificates and keys into the system certificate store. Last I knew a root-level daemon like wpa_supplicant could not access a user-sessions certificate store.
NM itself has actually used NSS for everything since 0.7.x. Obviously wpa_supplicant still needs NSS support.