Contributed by merdely on 2008-04-16 from the would-you-like-some-cheese-with-your-whine dept.

Damien Bergamini (damien@) just committed WPA-support (wikipedia) for OpenBSD. In the commit message, Damien states that "bwi(4), malo(4), ral(4), iwn(4), wpi(4), ural(4), rum(4), upgt(4), and zyd(4) should work." And, Damien says "support for more chipsets should arrive soon."

Examples, ifconfig(8) output and commit messages below.

To use WPA-PSK in station mode:

# ifconfig ral0 wpa wpapsk \ 0x0e8de50e2a614dbd83df61db3e042b396177e8cc8ef7e1f2e83e158a19ba5ea3

# /sbin/wpa-psk <ssid> <passphrase>

To convert a passphrase to a 256-bit hexadecimal key, use wpa-psk(8)

The output of ifconfig ral0 looks like:

ral0: flags=8802 mtu 1500 lladdr 00:11:2f:82:8c:01 groups: wlan media: IEEE802.11 autoselect mode 11g hostap status: active ieee80211: nwid openbsd-ap chan 5 bssid 00:11:2f:82:8c:01 wpapsk <not displayed> wpaprotos wpa1,wpa2 wpaakms psk,802.1x wpaciphers tkip,ccmp wpagroupcipher tkip 100dBm

Commit messages:

CVSROOT: /cvs Module name: src Changes by: damien@ 2008/04/16 12:32:15 Modified files: sys/conf : files sbin/ifconfig : ifconfig.8 ifconfig.c sys/net80211 : ieee80211.c ieee80211.h ieee80211_crypto.c ieee80211_crypto.h ieee80211_input.c ieee80211_ioctl.c ieee80211_ioctl.h ieee80211_node.c ieee80211_node.h ieee80211_output.c ieee80211_proto.c ieee80211_proto.h ieee80211_var.h sys/dev/ic : acx.c atw.c bwi.c malo.c pgt.c rt2560.c rt2661.c rt2860.c rt2860reg.h rtw.c sys/dev/pci : if_ipw.c if_ipwvar.h if_iwn.c if_wpi.c sys/dev/usb : if_ral.c if_rum.c if_upgt.c if_zyd.c Added files: sys/net80211 : ieee80211_crypto_ccmp.c ieee80211_crypto_tkip.c ieee80211_crypto_wep.c Log message: Kernel implementation of the 4-way handshake and group-key handshake protocols (both supplicant and authenticator state machines) as defined in the IEEE 802.11i standard. Software implementation of the TKIP (Temporal Key Integrity Protocol) and CCMP (CTR with CBC-MAC Protocol) protocols. This diff doesn't implement any of the 802.1X authentication protocols and thus only PSK authentication (using pre-shared keys) is currently supported. In concrete terms, this adds support for WPA-PSK and WPA2-PSK protocols, both in station and hostap modes. The following drivers are marked as WPA-capable and should work: bwi(4), malo(4), ral(4), iwn(4), wpi(4), ural(4), rum(4), upgt(4), and zyd(4) The following options have been added to ifconfig(8): wpa, wpapsk, wpaprotos, wpaakms, wpaciphers, wpagroupcipher wpa-psk(8) can be used to generate keys from passphrases. tested by many@ ok deraadt@

and

CVSROOT: /cvs Module name: src Changes by: damien@ 2008/04/15 10:29:05 Added files: sbin/wpa-psk : Makefile wpa-psk.8 wpa-psk.c Log message: welcome wpa-psk(8). ok deraadt@

Thank you to Damien for working on this oft requested feature and making it a reality (and thanks for helping me with this article). Be sure to show your appreciation by donating to the project.