Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcba8eae authored by Samuel Ortiz's avatar Samuel Ortiz Committed by John W. Linville
Browse files

cfg80211: Set WEP ciphers



With iwconfig there is no way to properly set the ciphers when trying to
connect to a WEP SSID. Although mac80211 based drivers dont need it, several
fullmac drivers do.
This patch basically sets the WEP ciphers whenever they're not set at all.

Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b6f0b639
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -658,14 +658,28 @@ int __cfg80211_connect(struct cfg80211_registered_device *rdev,

	if (connkeys && connkeys->def >= 0) {
		int idx;
		u32 cipher;

		idx = connkeys->def;
		cipher = connkeys->params[idx].cipher;
		/* If given a WEP key we may need it for shared key auth */
		if (connkeys->params[idx].cipher == WLAN_CIPHER_SUITE_WEP40 ||
		    connkeys->params[idx].cipher == WLAN_CIPHER_SUITE_WEP104) {
		if (cipher == WLAN_CIPHER_SUITE_WEP40 ||
		    cipher == WLAN_CIPHER_SUITE_WEP104) {
			connect->key_idx = idx;
			connect->key = connkeys->params[idx].key;
			connect->key_len = connkeys->params[idx].key_len;

			/*
			 * If ciphers are not set (e.g. when going through
			 * iwconfig), we have to set them appropriately here.
			 */
			if (connect->crypto.cipher_group == 0)
				connect->crypto.cipher_group = cipher;

			if (connect->crypto.n_ciphers_pairwise == 0) {
				connect->crypto.n_ciphers_pairwise = 1;
				connect->crypto.ciphers_pairwise[0] = cipher;
			}
		}
	}