1 | /*- |
2 | * Copyright (c) 2004 Video54 Technologies, Inc. |
3 | * Copyright (c) 2004-2005 Sam Leffler, Errno Consulting |
4 | * All rights reserved. |
5 | * |
6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions |
8 | * are met: |
9 | * 1. Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. |
11 | * 2. Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. |
14 | * 3. The name of the author may not be used to endorse or promote products |
15 | * derived from this software without specific prior written permission. |
16 | * |
17 | * Alternatively, this software may be distributed under the terms of the |
18 | * GNU General Public License ("GPL") version 2 as published by the Free |
19 | * Software Foundation. |
20 | * |
21 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
22 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
23 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
24 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
25 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
26 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
27 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
28 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
29 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
30 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
31 | */ |
32 | |
33 | #include <sys/cdefs.h> |
34 | #ifdef __FreeBSD__ |
35 | __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_xauth.c,v 1.2 2004/12/31 22:42:38 sam Exp $" ); |
36 | #endif |
37 | #ifdef __NetBSD__ |
38 | __KERNEL_RCSID(0, "$NetBSD: ieee80211_xauth.c,v 1.5 2006/02/27 01:08:28 dyoung Exp $" ); |
39 | #endif |
40 | |
41 | /* |
42 | * External authenticator placeholder module. |
43 | * |
44 | * This support is optional; it is only used when the 802.11 layer's |
45 | * authentication mode is set to use 802.1x or WPA is enabled separately |
46 | * (for WPA-PSK). If compiled as a module this code does not need |
47 | * to be present unless 802.1x/WPA is in use. |
48 | * |
49 | * The authenticator hooks into the 802.11 layer. At present we use none |
50 | * of the available callbacks--the user mode authenticator process works |
51 | * entirely from messages about stations joining and leaving. |
52 | */ |
53 | #include <sys/param.h> |
54 | #include <sys/kernel.h> |
55 | #include <sys/systm.h> |
56 | #include <sys/mbuf.h> |
57 | |
58 | #include <sys/socket.h> |
59 | |
60 | #include <net/if.h> |
61 | #include <net/if_media.h> |
62 | #include <net/if_ether.h> |
63 | #include <net/route.h> |
64 | |
65 | #include <net80211/ieee80211_var.h> |
66 | |
67 | /* |
68 | * One module handles everything for now. May want |
69 | * to split things up for embedded applications. |
70 | */ |
71 | static const struct ieee80211_authenticator xauth = { |
72 | .ia_name = "external" , |
73 | .ia_attach = NULL, |
74 | .ia_detach = NULL, |
75 | .ia_node_join = NULL, |
76 | .ia_node_leave = NULL, |
77 | }; |
78 | |
79 | IEEE80211_CRYPTO_SETUP(ieee80211_external_auth_setup) |
80 | { |
81 | ieee80211_authenticator_register(IEEE80211_AUTH_8021X, &xauth); |
82 | ieee80211_authenticator_register(IEEE80211_AUTH_WPA, &xauth); |
83 | } |
84 | |