Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Side by Side Diff: chrome/browser/chromeos/cros/native_network_parser.cc

Issue 8759014: Add ONC VPN support for OpenVPN and L2TP/IPsec VPNs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/cros/native_network_parser.h" 5 #include "chrome/browser/chromeos/cros/native_network_parser.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 { flimflam::kFirmwareRevisionProperty, PROPERTY_INDEX_FIRMWARE_REVISION }, 69 { flimflam::kFirmwareRevisionProperty, PROPERTY_INDEX_FIRMWARE_REVISION },
70 { flimflam::kFoundNetworksProperty, PROPERTY_INDEX_FOUND_NETWORKS }, 70 { flimflam::kFoundNetworksProperty, PROPERTY_INDEX_FOUND_NETWORKS },
71 { flimflam::kGuidProperty, PROPERTY_INDEX_GUID }, 71 { flimflam::kGuidProperty, PROPERTY_INDEX_GUID },
72 { flimflam::kHardwareRevisionProperty, PROPERTY_INDEX_HARDWARE_REVISION }, 72 { flimflam::kHardwareRevisionProperty, PROPERTY_INDEX_HARDWARE_REVISION },
73 { flimflam::kHomeProviderProperty, PROPERTY_INDEX_HOME_PROVIDER }, 73 { flimflam::kHomeProviderProperty, PROPERTY_INDEX_HOME_PROVIDER },
74 { flimflam::kHostProperty, PROPERTY_INDEX_HOST }, 74 { flimflam::kHostProperty, PROPERTY_INDEX_HOST },
75 { flimflam::kIdentityProperty, PROPERTY_INDEX_IDENTITY }, 75 { flimflam::kIdentityProperty, PROPERTY_INDEX_IDENTITY },
76 { flimflam::kImeiProperty, PROPERTY_INDEX_IMEI }, 76 { flimflam::kImeiProperty, PROPERTY_INDEX_IMEI },
77 { flimflam::kImsiProperty, PROPERTY_INDEX_IMSI }, 77 { flimflam::kImsiProperty, PROPERTY_INDEX_IMSI },
78 { flimflam::kIsActiveProperty, PROPERTY_INDEX_IS_ACTIVE }, 78 { flimflam::kIsActiveProperty, PROPERTY_INDEX_IS_ACTIVE },
79 { flimflam::kL2tpIpsecAuthenticationType,
80 PROPERTY_INDEX_IPSEC_AUTHENTICATIONTYPE },
79 { flimflam::kL2tpIpsecCaCertNssProperty, 81 { flimflam::kL2tpIpsecCaCertNssProperty,
80 PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS }, 82 PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS },
81 { flimflam::kL2tpIpsecClientCertIdProperty, 83 { flimflam::kL2tpIpsecClientCertIdProperty,
82 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID }, 84 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID },
83 { flimflam::kL2tpIpsecClientCertSlotProp, 85 { flimflam::kL2tpIpsecClientCertSlotProp,
84 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT }, 86 PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT },
87 { flimflam::kL2tpIpsecIkeVersion, PROPERTY_INDEX_IPSEC_IKEVERSION },
85 { flimflam::kL2tpIpsecPinProperty, PROPERTY_INDEX_L2TPIPSEC_PIN }, 88 { flimflam::kL2tpIpsecPinProperty, PROPERTY_INDEX_L2TPIPSEC_PIN },
86 { flimflam::kL2tpIpsecPskProperty, PROPERTY_INDEX_L2TPIPSEC_PSK }, 89 { flimflam::kL2tpIpsecPskProperty, PROPERTY_INDEX_L2TPIPSEC_PSK },
87 { flimflam::kL2tpIpsecPasswordProperty, PROPERTY_INDEX_L2TPIPSEC_PASSWORD }, 90 { flimflam::kL2tpIpsecPasswordProperty, PROPERTY_INDEX_L2TPIPSEC_PASSWORD },
88 { flimflam::kL2tpIpsecUserProperty, PROPERTY_INDEX_L2TPIPSEC_USER }, 91 { flimflam::kL2tpIpsecUserProperty, PROPERTY_INDEX_L2TPIPSEC_USER },
89 { flimflam::kL2tpIpsecGroupNameProperty, 92 { flimflam::kL2tpIpsecGroupNameProperty,
90 PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME }, 93 PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME },
91 { flimflam::kManufacturerProperty, PROPERTY_INDEX_MANUFACTURER }, 94 { flimflam::kManufacturerProperty, PROPERTY_INDEX_MANUFACTURER },
92 { flimflam::kMdnProperty, PROPERTY_INDEX_MDN }, 95 { flimflam::kMdnProperty, PROPERTY_INDEX_MDN },
93 { flimflam::kMeidProperty, PROPERTY_INDEX_MEID }, 96 { flimflam::kMeidProperty, PROPERTY_INDEX_MEID },
94 { flimflam::kMinProperty, PROPERTY_INDEX_MIN }, 97 { flimflam::kMinProperty, PROPERTY_INDEX_MIN },
(...skipping 30 matching lines...) Expand all
125 { flimflam::kSupportNetworkScanProperty, 128 { flimflam::kSupportNetworkScanProperty,
126 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN }, 129 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN },
127 { flimflam::kTechnologyFamilyProperty, PROPERTY_INDEX_TECHNOLOGY_FAMILY }, 130 { flimflam::kTechnologyFamilyProperty, PROPERTY_INDEX_TECHNOLOGY_FAMILY },
128 { flimflam::kTypeProperty, PROPERTY_INDEX_TYPE }, 131 { flimflam::kTypeProperty, PROPERTY_INDEX_TYPE },
129 { flimflam::kUIDataProperty, PROPERTY_INDEX_UI_DATA }, 132 { flimflam::kUIDataProperty, PROPERTY_INDEX_UI_DATA },
130 { flimflam::kUsageURLProperty, PROPERTY_INDEX_USAGE_URL }, 133 { flimflam::kUsageURLProperty, PROPERTY_INDEX_USAGE_URL },
131 { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER }, 134 { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER },
132 { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD }, 135 { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD },
133 { flimflam::kOpenVPNClientCertIdProperty, 136 { flimflam::kOpenVPNClientCertIdProperty,
134 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID }, 137 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID },
138 { flimflam::kOpenVPNAuthProperty, PROPERTY_INDEX_OPEN_VPN_AUTH },
139 { flimflam::kOpenVPNAuthRetryProperty, PROPERTY_INDEX_OPEN_VPN_AUTHRETRY },
140 { flimflam::kOpenVPNAuthNoCacheProperty,
141 PROPERTY_INDEX_OPEN_VPN_AUTHNOCACHE },
142 { flimflam::kOpenVPNCaCertProperty, PROPERTY_INDEX_OPEN_VPN_CACERT },
143 { flimflam::kOpenVPNClientCertSlotProperty,
144 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_SLOT },
145 { flimflam::kOpenVPNCipherProperty, PROPERTY_INDEX_OPEN_VPN_CIPHER },
146 { flimflam::kOpenVPNCompLZOProperty, PROPERTY_INDEX_OPEN_VPN_COMPLZO },
147 { flimflam::kOpenVPNCompNoAdaptProperty,
148 PROPERTY_INDEX_OPEN_VPN_COMPNOADAPT },
149 { flimflam::kOpenVPNKeyDirectionProperty,
150 PROPERTY_INDEX_OPEN_VPN_KEYDIRECTION },
151 { flimflam::kOpenVPNNsCertTypeProperty, PROPERTY_INDEX_OPEN_VPN_NSCERTTYPE },
152 { flimflam::kOpenVPNOTPProperty, PROPERTY_INDEX_OPEN_VPN_OTP },
153 { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD },
154 { flimflam::kOpenVPNPinProperty, PROPERTY_INDEX_OPEN_VPN_PIN },
155 { flimflam::kOpenVPNPortProperty, PROPERTY_INDEX_OPEN_VPN_PORT },
156 { flimflam::kOpenVPNProtoProperty, PROPERTY_INDEX_OPEN_VPN_PROTO },
157 { flimflam::kOpenVPNProviderProperty,
158 PROPERTY_INDEX_OPEN_VPN_PKCS11_PROVIDER },
159 { flimflam::kOpenVPNPushPeerInfoProperty,
160 PROPERTY_INDEX_OPEN_VPN_PUSHPEERINFO },
161 { flimflam::kOpenVPNRemoteCertEKUProperty,
162 PROPERTY_INDEX_OPEN_VPN_REMOTECERTEKU },
163 { flimflam::kOpenVPNRemoteCertKUProperty,
164 PROPERTY_INDEX_OPEN_VPN_REMOTECERTKU },
165 { flimflam::kOpenVPNRemoteCertTLSProperty,
166 PROPERTY_INDEX_OPEN_VPN_REMOTECERTTLS },
167 { flimflam::kOpenVPNRenegSecProperty, PROPERTY_INDEX_OPEN_VPN_RENEGSEC },
168 { flimflam::kOpenVPNServerPollTimeoutProperty,
169 PROPERTY_INDEX_OPEN_VPN_SERVERPOLLTIMEOUT },
170 { flimflam::kOpenVPNShaperProperty, PROPERTY_INDEX_OPEN_VPN_SHAPER },
171 { flimflam::kOpenVPNStaticChallengeProperty,
172 PROPERTY_INDEX_OPEN_VPN_STATICCHALLENGE },
173 { flimflam::kOpenVPNTLSAuthContentsProperty,
174 PROPERTY_INDEX_OPEN_VPN_TLSAUTHCONTENTS },
175 { flimflam::kOpenVPNTLSRemoteProperty, PROPERTY_INDEX_OPEN_VPN_TLSREMOTE },
176 { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER },
135 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP }, 177 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP },
178 { flimflam::kVPNDomainProperty, PROPERTY_INDEX_VPN_DOMAIN },
136 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE }, 179 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE },
137 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY }, 180 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY },
138 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID }, 181 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID },
139 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID }, 182 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID },
140 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE }, 183 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE },
141 }; 184 };
142 185
143 EnumMapper<ConnectionType>::Pair network_type_table[] = { 186 EnumMapper<ConnectionType>::Pair network_type_table[] = {
144 { flimflam::kTypeEthernet, TYPE_ETHERNET }, 187 { flimflam::kTypeEthernet, TYPE_ETHERNET },
145 { flimflam::kTypeWifi, TYPE_WIFI }, 188 { flimflam::kTypeWifi, TYPE_WIFI },
(...skipping 22 matching lines...) Expand all
168 EnumMapper<EAPPhase2Auth>::Pair network_eap_auth_table[] = { 211 EnumMapper<EAPPhase2Auth>::Pair network_eap_auth_table[] = {
169 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 }, 212 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 },
170 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, 213 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
171 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 }, 214 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 },
172 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, 215 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
173 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP }, 216 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP },
174 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP }, 217 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP },
175 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP }, 218 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP },
176 }; 219 };
177 220
221 EnumMapper<ProviderType>::Pair provider_type_table[] = {
222 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK },
223 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN },
224 };
225
178 // Serve the singleton mapper instance. 226 // Serve the singleton mapper instance.
179 const EnumMapper<PropertyIndex>* get_native_mapper() { 227 const EnumMapper<PropertyIndex>* get_native_mapper() {
180 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper, 228 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper,
181 (property_index_table, 229 (property_index_table,
182 arraysize(property_index_table), 230 arraysize(property_index_table),
183 PROPERTY_INDEX_UNKNOWN)); 231 PROPERTY_INDEX_UNKNOWN));
184 return &mapper; 232 return &mapper;
185 } 233 }
186 234
187 } // namespace 235 } // namespace
(...skipping 994 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 network->set_name(name); 1230 network->set_name(name);
1183 return true; 1231 return true;
1184 } 1232 }
1185 case PROPERTY_INDEX_TYPE: { 1233 case PROPERTY_INDEX_TYPE: {
1186 std::string provider_type_string; 1234 std::string provider_type_string;
1187 if (!value.GetAsString(&provider_type_string)) 1235 if (!value.GetAsString(&provider_type_string))
1188 break; 1236 break;
1189 network->set_provider_type(ParseProviderType(provider_type_string)); 1237 network->set_provider_type(ParseProviderType(provider_type_string));
1190 return true; 1238 return true;
1191 } 1239 }
1192 case PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS: { 1240 case PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS:
1241 case PROPERTY_INDEX_OPEN_VPN_CACERT: {
1193 std::string ca_cert_nss; 1242 std::string ca_cert_nss;
1194 if (!value.GetAsString(&ca_cert_nss)) 1243 if (!value.GetAsString(&ca_cert_nss))
1195 break; 1244 break;
1196 network->set_ca_cert_nss(ca_cert_nss); 1245 network->set_ca_cert_nss(ca_cert_nss);
1197 return true; 1246 return true;
1198 } 1247 }
1199 case PROPERTY_INDEX_L2TPIPSEC_PSK: { 1248 case PROPERTY_INDEX_L2TPIPSEC_PSK: {
1200 std::string psk_passphrase; 1249 std::string psk_passphrase;
1201 if (!value.GetAsString(&psk_passphrase)) 1250 if (!value.GetAsString(&psk_passphrase))
1202 break; 1251 break;
(...skipping 30 matching lines...) Expand all
1233 break; 1282 break;
1234 network->set_group_name(group_name); 1283 network->set_group_name(group_name);
1235 return true; 1284 return true;
1236 } 1285 }
1237 default: 1286 default:
1238 break; 1287 break;
1239 } 1288 }
1240 return false; 1289 return false;
1241 } 1290 }
1242 1291
1292 // static
1293 const EnumMapper<ProviderType>*
1294 NativeVirtualNetworkParser::provider_type_mapper() {
1295 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser,
1296 (provider_type_table, arraysize(provider_type_table),
1297 PROVIDER_TYPE_MAX));
1298 return &parser;
1299 }
1300
1243 ProviderType NativeVirtualNetworkParser::ParseProviderType( 1301 ProviderType NativeVirtualNetworkParser::ParseProviderType(
1244 const std::string& type) { 1302 const std::string& type) {
1245 static EnumMapper<ProviderType>::Pair table[] = { 1303 return provider_type_mapper()->Get(type);
1246 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK },
1247 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN },
1248 };
1249 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser,
1250 (table, arraysize(table), PROVIDER_TYPE_MAX));
1251 return parser.Get(type);
1252 } 1304 }
1253 1305
1254 } // namespace chromeos 1306 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698