summaryrefslogtreecommitdiffstats
path: root/nexus/WifiNetwork.h
diff options
context:
space:
mode:
authorSan Mehat <san@google.com>2009-05-12 17:26:28 -0700
committerSan Mehat <san@google.com>2009-05-13 09:10:01 -0700
commit82a2116e6b67db910bba22c4874e6ca5efd3eec0 (patch)
tree0f08c363327859f3da5128b24743e0974edf5f55 /nexus/WifiNetwork.h
parentdf6c1b91e3813886070f35929583c30cfaead918 (diff)
downloadsystem_core-82a2116e6b67db910bba22c4874e6ca5efd3eec0.zip
system_core-82a2116e6b67db910bba22c4874e6ca5efd3eec0.tar.gz
system_core-82a2116e6b67db910bba22c4874e6ca5efd3eec0.tar.bz2
nexus: Initial support for manipulating wifi networks + change wifi scan notification msgs
Signed-off-by: San Mehat <san@google.com>
Diffstat (limited to 'nexus/WifiNetwork.h')
-rw-r--r--nexus/WifiNetwork.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/nexus/WifiNetwork.h b/nexus/WifiNetwork.h
new file mode 100644
index 0000000..1354730
--- /dev/null
+++ b/nexus/WifiNetwork.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _WIFI_NETWORK_H
+#define _WIFI_NETWORK_H
+
+#include <sys/types.h>
+
+#include "../../../frameworks/base/include/utils/List.h"
+
+class KeyManagementMask {
+public:
+ static const uint32_t NONE = 0;
+ static const uint32_t WPA_PSK = 0x01;
+ static const uint32_t WPA_EAP = 0x02;
+ static const uint32_t IEEE8021X = 0x04;
+ static const uint32_t ALL = WPA_PSK | WPA_EAP | IEEE8021X;
+};
+
+class SecurityProtocolMask {
+public:
+ static const uint32_t WPA = 0x01;
+ static const uint32_t RSN = 0x02;
+};
+
+class AuthenticationAlgorithmMask {
+public:
+ static const uint32_t OPEN = 0x01;
+ static const uint32_t SHARED = 0x02;
+ static const uint32_t LEAP = 0x04;
+};
+
+class PairwiseCipherMask {
+public:
+ static const uint32_t NONE = 0x00;
+ static const uint32_t TKIP = 0x01;
+ static const uint32_t CCMP = 0x02;
+};
+
+class GroupCipherMask {
+public:
+ static const uint32_t WEP40 = 0x01;
+ static const uint32_t WEP104 = 0x02;
+ static const uint32_t TKIP = 0x04;
+ static const uint32_t CCMP = 0x08;
+};
+
+class Supplicant;
+
+class WifiNetwork {
+ Supplicant *mSuppl;
+
+ /*
+ * Unique network id - normally provided by supplicant
+ */
+ int mNetid;
+
+ /*
+ * The networks' SSID. Can either be an ASCII string,
+ * which must be enclosed in double quotation marks
+ * (ie: "MyNetwork"), or a string of hex digits which
+ * are not enclosed in quotes (ie: 01ab7893)
+ */
+ char *mSsid;
+
+ /*
+ * When set, this entry should only be used
+ * when associating with the AP having the specified
+ * BSSID. The value is a string in the format of an
+ * Ethernet MAC address
+ */
+ char *mBssid;
+
+ /*
+ * Pre-shared key for use with WPA-PSK
+ */
+ char *mPsk;
+
+ /*
+ * Up to four WEP keys. Either in ASCII string enclosed in
+ * double quotes, or a string of hex digits
+ */
+ char *mWepKeys[4];
+
+ /*
+ * Default WEP key index, ranging from 0 -> NUM_WEP_KEYS -1
+ */
+ int mDefaultKeyIndex;
+
+ /*
+ * Priority determines the preference given to a network by
+ * supplicant when choosing an access point with which
+ * to associate
+ */
+ int mPriority;
+
+ /*
+ * This is a network that does not broadcast it's SSID, so an
+ * SSID-specific probe request must be used for scans.
+ */
+ char *mHiddenSsid;
+
+ /*
+ * The set of key management protocols supported by this configuration.
+ */
+ uint32_t mAllowedKeyManagement;
+
+ /*
+ * The set of security protocols supported by this configuration.
+ */
+ uint32_t mAllowedProtocols;
+
+ /*
+ * The set of authentication protocols supported by this configuration.
+ */
+ uint32_t mAllowedAuthAlgorithms;
+
+ /*
+ * The set of pairwise ciphers for WPA supported by this configuration.
+ */
+ uint32_t mAllowedPairwiseCiphers;
+
+ /*
+ * The set of group ciphers for WPA supported by this configuration.
+ */
+ uint32_t mAllowedGroupCiphers;
+
+public:
+ WifiNetwork(Supplicant *suppl);
+ virtual ~WifiNetwork();
+
+ int getNetworkId() { return mNetid; }
+ const char *getSsid() { return mSsid; }
+ const char *getBssid() { return mBssid; }
+ const char *getPsk() { return mPsk; }
+ const char *getWepKey(int idx) { return mWepKeys[idx]; }
+ int getDefaultKeyIndex() { return mDefaultKeyIndex; }
+ int getPriority() { return mPriority; }
+ const char *getHiddenSsid() { return mHiddenSsid; }
+ uint32_t getAllowedKeyManagement() { return mAllowedKeyManagement; }
+ uint32_t getAllowedProtocols() { return mAllowedProtocols; }
+ uint32_t getAllowedAuthAlgorithms() { return mAllowedAuthAlgorithms; }
+ uint32_t getAllowedPairwiseCiphers() { return mAllowedPairwiseCiphers; }
+ uint32_t getAllowedGroupCiphers() { return mAllowedGroupCiphers; }
+
+ int setSsid(char *ssid);
+ int setBssid(char *bssid);
+ int setPsk(char *psk);
+ int setWepKey(int idx, char *key);
+ int setDefaultKeyIndex(int idx);
+ int setPriority(int pri);
+ int setHiddenSsid(char *ssid);
+ int setAllowedKeyManagement(uint32_t mask);
+ int setAllowedProtocols(uint32_t mask);
+ int setAllowedPairwiseCiphers(uint32_t mask);
+ int setAllowedGroupCiphers(uint32_t mask);
+};
+
+typedef android::List<WifiNetwork *> WifiNetworkCollection;
+
+#endif