When creating multiple vaps, it seems that the last wep key you assign to any vap is used for all the vaps. I've changed the first key in the report just because it's our default key, even though I know wep is pathetic.
iwconfig wlan1 key s:wubba
iwconfig wlan2 key s:other
iwconfig wlan3 key s:vwxyz
iwconfig wlan4 key s:abcde
Now the keys look correct:
GW-154:~# iwconfig
wlan1 IEEE 802.11g ESSID:"gw154ap" Nickname:"GW-154"
Mode:Master Frequency:2.412 GHz Access Point: 00:02:6F:21:E8:C6
Bit Rate:0 kb/s Tx-Power:19 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:XXXX-XXXX-XX Security mode:restricted
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:756 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan2 IEEE 802.11g ESSID:"gw154ap2" Nickname:"GW-154"
Mode:Master Frequency:2.412 GHz Access Point: 06:02:6F:21:E8:C6
Bit Rate:0 kb/s Tx-Power:19 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:6F74-6865-72 Security mode:restricted
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:772 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan3 IEEE 802.11g ESSID:"gw154ap3" Nickname:"GW-154"
Mode:Master Frequency:2.412 GHz Access Point: 0A:02:6F:21:E8:C6
Bit Rate:0 kb/s Tx-Power:31 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:7677-7879-7A Security mode:restricted
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:785 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan4 IEEE 802.11g ESSID:"gw154ap4" Nickname:"GW-154"
Mode:Master Frequency:2.412 GHz Access Point: 0E:02:6F:21:E8:C6
Bit Rate:0 kb/s Tx-Power:31 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:6162-6364-65 Security mode:restricted
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:787 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
But you can't connect properly to wlan1 with key s:wubba. It looks like it's associated but no messages go through, you never get an ip... exactly what you get with the wrong wep key. Now I try to associate with wlan1 using the key s:abcde and it works. If I only create the first 3 aps, then I can connect to wlan1 only with the key s:vwxyz (for wlan3). So it's pretty consistent.
A quick look at struct ieee80211vap shows a
u_int16_t iv_def_txkey; /* default/group tx key index */
struct ieee80211_key iv_nw_keys[IEEE80211_WEP_NKID];
which seems to indicate that in theory the driver would support separate keys per virtual station, and they do indeed look different when you do an iwconfig.
I may try debugging this myself later, but don't have the time now so just making a note of it.