UTD switched from using WEP for securing its wireless network to 802.1x about a year or two ago. However, OpenBSD does not support 802.1x at the moment. Here are some notes on how I've managed to hack OpenBSD 3.9 to connect to UTD's wireless network anyways.
UTD's 802.1x configuration uses “Dynamic WEP,” meaning the keying material derived from the 802.1x protocol is simply used as a WEP key. (WPA Enterprise also uses 802.1x, but the keying information is used in more secure encryption systems like TKIP and AES.) UTD chose this scheme because it minimized the need for driver support.
Connecting OpenBSD to UTD's wireless network involves modifying two code bases: OpenBSD's driver for your wireless card and wpa_supplicant's BSD backend to use OpenBSD's ioctls.
Dynamic WEP is the only feature the driver must provide to connect to UTD's network. A driver that supports Dynamic WEP is able to change WEP keys without reassociating.
My laptop has a Ralink Mini-PCI wireless card, so I patched the ioctl to not reset the network when a WEP key is changed. See rt2560_ioctl in sys/dev/ic/rt2560.c, and see how fast channel switching was implemented.
wpa_supplicant already has a FreeBSD/NetBSD backend, but OpenBSD's net80211 stack has diverged significantly since its initial import. I found the easiest solution was to read driver.h and reimplement the minimal number of callback functions necessary. Many of the functions are just silly hacks though. For example, I don't actually implement the associate function, but instead just tell the frontend that associations succeeded.
Matthew R. Dempsky <mrd@alkemio.org>