[Linux-wlan-ng-devel] Bug#389457: linux-wlan-ng: too picky about
WEP key format
Tormod Volden
debian.tormod at gmail.com
Mon Sep 25 20:05:30 UTC 2006
Package: linux-wlan-ng
Version: 0.2.5-1
Severity: normal
Tags: patch
The linux-wlan-ng package (and the prism2 kernel modules) is very
picky about how you enter the WEP key. It is of course documented
somewhere that the format should be xx:xx:xx:xx:xx, but this is not
obvious when using the Gnome Networking user interface.
For other types of wireless cards, the wireless-tools library does a
reformatting of the entered key in order to be more robust about how the
user enters the key. linux-wlan-ng can easily do something similar to
be as user friendly.
The attached patch removes any delimiters that the users have entered
and formats the key in pair of hex digits. The conversion supports any
key length and is free of bashisms.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-2-486
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages linux-wlan-ng depends on:
ii libc6 2.3.6.ds1-4 GNU C Library: Shared libraries
ii udev 0.093-1 /dev/ and hotplug management daemo
ii wireless-tools 28-1 Tools for manipulating Linux Wirel
Versions of packages linux-wlan-ng recommends:
pn linux-wlan-ng-doc <none> (no description available)
-- no debconf information
-------------- next part --------------
--- linux-wlan-ng-pre-up.orig 2006-09-12 00:14:15.000000000 +0200
+++ linux-wlan-ng-pre-up 2006-09-15 00:23:24.000000000 +0200
@@ -125,6 +125,26 @@
fi
done
+# Make the WEP key xx:xx:xx:xx:xx
+format_key() {
+ KEY="$1"
+
+ # Don't touch a string key
+ if [ x$(printf "%.2s" "$KEY") != "xs:" ]; then
+
+ # Strip any delimiters (all non-digits)
+ KEY=$(echo $KEY | tr -d -c '[:xdigit:]')
+
+ # Inserts colon between pairs of hex digits
+ while [ ${#KEY} -gt 2 ]; do
+ NEWKEY=$(printf "%s%.2s:" "$NEWKEY" "$KEY")
+ KEY=${KEY#??}
+ done
+ KEY=${NEWKEY}${KEY}
+ fi
+ echo $KEY
+}
+
if [ "$IF_WIRELESS_ENC" = "on" ]; then
# Set up WEP.
result=`$WLANCTL $IFACE dot11req_mibget mibattribute=dot11PrivacyOptionImplemented`
@@ -173,16 +193,16 @@
done
else
$WLANCTL $IFACE dot11req_mibset \
- mibattribute=dot11WEPDefaultKey0=$IF_WLAN_NG_KEY0 \
+ mibattribute=dot11WEPDefaultKey0=`format_key $IF_WLAN_NG_KEY0` \
>/dev/null
$WLANCTL $IFACE dot11req_mibset \
- mibattribute=dot11WEPDefaultKey1=$IF_WLAN_NG_KEY1 \
+ mibattribute=dot11WEPDefaultKey1=`format_key $IF_WLAN_NG_KEY1` \
>/dev/null
$WLANCTL $IFACE dot11req_mibset \
- mibattribute=dot11WEPDefaultKey2=$IF_WLAN_NG_KEY2 \
+ mibattribute=dot11WEPDefaultKey2=`format_key $IF_WLAN_NG_KEY2` \
>/dev/null
$WLANCTL $IFACE dot11req_mibset \
- mibattribute=dot11WEPDefaultKey3=$IF_WLAN_NG_KEY3 \
+ mibattribute=dot11WEPDefaultKey3=`format_key $IF_WLAN_NG_KEY3` \
>/dev/null
fi
fi
More information about the Linux-wlan-ng-devel
mailing list