summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/base/ssl_config_service.cc7
-rw-r--r--net/base/ssl_config_service.h4
-rw-r--r--net/base/ssl_config_service_unittest.cc22
-rw-r--r--net/base/ssl_false_start_blacklist.cc31
-rw-r--r--net/base/ssl_false_start_blacklist.h79
-rw-r--r--net/base/ssl_false_start_blacklist.txt2288
-rw-r--r--net/base/ssl_false_start_blacklist_process.cc214
-rw-r--r--net/base/ssl_false_start_blacklist_unittest.cc39
-rw-r--r--net/net.gyp46
-rw-r--r--net/socket/ssl_client_socket_nss.cc76
-rw-r--r--net/socket/ssl_client_socket_nss.h7
-rw-r--r--net/socket/ssl_client_socket_openssl.cc7
-rw-r--r--net/third_party/nss/README.chromium3
-rwxr-xr-xnet/third_party/nss/patches/applypatches.sh2
-rw-r--r--net/third_party/nss/ssl/ssl3con.c1
-rw-r--r--net/third_party/nss/ssl/ssl3ext.c4
16 files changed, 15 insertions, 2815 deletions
diff --git a/net/base/ssl_config_service.cc b/net/base/ssl_config_service.cc
index 16720bd..f8f77fb 100644
--- a/net/base/ssl_config_service.cc
+++ b/net/base/ssl_config_service.cc
@@ -9,7 +9,6 @@
#include "base/synchronization/lock.h"
#include "net/base/crl_set.h"
#include "net/base/ssl_config_service_defaults.h"
-#include "net/base/ssl_false_start_blacklist.h"
namespace net {
@@ -57,12 +56,6 @@ SSLConfigService::SSLConfigService()
: observer_list_(ObserverList<Observer>::NOTIFY_EXISTING_ONLY) {
}
-// static
-bool SSLConfigService::IsKnownFalseStartIncompatibleServer(
- const std::string& hostname) {
- return SSLFalseStartBlacklist::IsMember(hostname);
-}
-
static bool g_cached_info_enabled = false;
// GlobalCRLSet holds a reference to the global CRLSet. It simply wraps a lock
diff --git a/net/base/ssl_config_service.h b/net/base/ssl_config_service.h
index d44e6ea..010f564 100644
--- a/net/base/ssl_config_service.h
+++ b/net/base/ssl_config_service.h
@@ -145,10 +145,6 @@ class NET_EXPORT SSLConfigService
// May not be thread-safe, should only be called on the IO thread.
virtual void GetSSLConfig(SSLConfig* config) = 0;
- // Returns true if the given hostname is known to be incompatible with TLS
- // False Start.
- static bool IsKnownFalseStartIncompatibleServer(const std::string& hostname);
-
// Sets and gets the current, global CRL set.
static void SetCRLSet(scoped_refptr<CRLSet> crl_set);
static scoped_refptr<CRLSet> GetCRLSet();
diff --git a/net/base/ssl_config_service_unittest.cc b/net/base/ssl_config_service_unittest.cc
index 67036bb..2ac2a9b 100644
--- a/net/base/ssl_config_service_unittest.cc
+++ b/net/base/ssl_config_service_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -14,11 +14,6 @@ namespace net {
namespace {
-bool IsFalseStartIncompatible(const std::string& hostname) {
- return SSLConfigService::IsKnownFalseStartIncompatibleServer(
- hostname);
-}
-
class MockSSLConfigService : public SSLConfigService {
public:
explicit MockSSLConfigService(const SSLConfig& config) : config_(config) {}
@@ -52,21 +47,6 @@ class MockSSLConfigServiceObserver : public SSLConfigService::Observer {
} // namespace
-TEST(SSLConfigServiceTest, FalseStartDisabledHosts) {
- EXPECT_TRUE(IsFalseStartIncompatible("www.picnik.com"));
- EXPECT_FALSE(IsFalseStartIncompatible("picnikfoo.com"));
- EXPECT_FALSE(IsFalseStartIncompatible("foopicnik.com"));
-}
-
-TEST(SSLConfigServiceTest, FalseStartDisabledDomains) {
- EXPECT_TRUE(IsFalseStartIncompatible("yodlee.com"));
- EXPECT_TRUE(IsFalseStartIncompatible("a.yodlee.com"));
- EXPECT_TRUE(IsFalseStartIncompatible("b.a.yodlee.com"));
- EXPECT_FALSE(IsFalseStartIncompatible("ayodlee.com"));
- EXPECT_FALSE(IsFalseStartIncompatible("yodleea.com"));
- EXPECT_FALSE(IsFalseStartIncompatible("yodlee.org"));
-}
-
TEST(SSLConfigServiceTest, NoChangesWontNotifyObservers) {
SSLConfig initial_config;
initial_config.rev_checking_enabled = true;
diff --git a/net/base/ssl_false_start_blacklist.cc b/net/base/ssl_false_start_blacklist.cc
deleted file mode 100644
index d08852d..0000000
--- a/net/base/ssl_false_start_blacklist.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/base/ssl_false_start_blacklist.h"
-
-namespace net {
-
-// static
-bool SSLFalseStartBlacklist::IsMember(const std::string& host) {
- const std::string last_two_components(LastTwoComponents(host));
- if (last_two_components.empty())
- return false;
-
- const size_t bucket = Hash(last_two_components) & (kBuckets - 1);
- for (size_t i = kHashTable[bucket]; i < kHashTable[bucket + 1]; ) {
- const size_t blacklist_entry_len = static_cast<uint8>(kHashData[i]);
- if (host.length() >= blacklist_entry_len &&
- !host.compare(host.length() - blacklist_entry_len, blacklist_entry_len,
- &kHashData[i + 1], blacklist_entry_len) &&
- (host.length() == blacklist_entry_len ||
- host[host.length() - blacklist_entry_len - 1] == '.')) {
- return true;
- }
- i += blacklist_entry_len + 1;
- }
-
- return false;
-}
-
-} // namespace net
diff --git a/net/base/ssl_false_start_blacklist.h b/net/base/ssl_false_start_blacklist.h
deleted file mode 100644
index ad7a007..0000000
--- a/net/base/ssl_false_start_blacklist.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef NET_BASE_SSL_FALSE_START_BLACKLIST_H_
-#define NET_BASE_SSL_FALSE_START_BLACKLIST_H_
-
-#include <string>
-
-#include "base/logging.h"
-#include "net/base/net_export.h"
-
-namespace net {
-
-// SSLFalseStartBlacklist is a set of domains which we believe to be intolerant
-// to TLS False Start. Because this set is several hundred long, it's
-// precompiled by the code in ssl_false_start_blacklist_process.cc into a hash
-// table for fast lookups.
-class SSLFalseStartBlacklist {
- public:
- // Returns true if |host| (a DNS name in dotted form, e.g. "www.example.com")
- // is in the blacklist.
- NET_EXPORT_PRIVATE static bool IsMember(const std::string& host);
-
- // Returns the modified djb2 hash of |host|.
- // NOTE: This is inline because the code which generates the hash table needs
- // to use it. However, the generating code cannot link against
- // ssl_false_start_blacklist.cc because that needs the tables which it
- // generates.
- static uint32 Hash(const std::string& host) {
- uint32 hash = 5381;
- for (const uint8* in = reinterpret_cast<const uint8*>(host.c_str());
- *in != 0; ++in)
- hash = ((hash << 5) + hash) ^ *in;
- return hash;
- }
-
- // Returns the last two dot-separated components of |host|, ignoring any
- // trailing dots. For example, returns "c.d" for "a.b.c.d.". Returns an
- // empty string if |host| does not have two dot-separated components.
- // NOTE: Inline for the same reason as Hash().
- static std::string LastTwoComponents(const std::string& host) {
- size_t last_nondot = host.find_last_not_of('.');
- if (last_nondot == std::string::npos)
- return std::string();
- size_t last_dot = host.find_last_of('.', last_nondot);
- if ((last_dot == 0) || (last_dot == std::string::npos))
- return std::string();
- // NOTE: This next line works correctly even when the call returns npos.
- size_t components_begin = host.find_last_of('.', last_dot - 1) + 1;
- return host.substr(components_begin, last_nondot - components_begin + 1);
- }
-
- // This is the number of buckets in the blacklist hash table. (Must be a
- // power of two).
- static const size_t kBuckets = 128;
-
- private:
- // The following two members are defined in
- // ssl_false_start_blacklist_data.cc, which is generated by
- // ssl_false_start_blacklist_process.cc
-
- // kHashTable contains an offset into |kHashData| for each bucket. The
- // additional element at the end contains the length of |kHashData|.
- static const uint32 kHashTable[kBuckets + 1];
- // kHashData contains the contents of the hash table. |kHashTable| indexes
- // into this array. Each bucket consists of zero or more, 8-bit length
- // prefixed strings. Each string is a DNS name in dotted form. For a given
- // string x, x and *.x are considered to be in the blacklist. In order to
- // assign a string to a hash bucket, the last two labels (not including the
- // root label) are hashed. Thus, the bucket for "www.example.com" is
- // Hash("example.com"). No names that are less than two labels long are
- // included in the blacklist.
- static const char kHashData[];
-};
-
-} // namespace net
-
-#endif // NET_BASE_SSL_FALSE_START_BLACKLIST_H_
diff --git a/net/base/ssl_false_start_blacklist.txt b/net/base/ssl_false_start_blacklist.txt
deleted file mode 100644
index 9e056a6..0000000
--- a/net/base/ssl_false_start_blacklist.txt
+++ /dev/null
@@ -1,2288 +0,0 @@
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This is the list of hosts for which we will not perform False Start. It was
-# gathered from probing and bug reports.
-
-# This is included for unit tests:
-example.com
-
-1-plus.com
-155551.com
-3mfx.three.com.hk
-4science.net
-4ward.asia
-50pickupnow.com
-6ftoverhead.com
-aaa.grh.org
-abcirclenow.com
-abrocketpowertrainer.com
-abtserver.com
-abtwebxpress.com
-ac-lyon.fr
-ac-nice.fr
-ac-orleans-tours.fr
-ac-paris.fr
-ac-poitiers.fr
-ac-reims.fr
-acad1.dlit.edu.tw
-academicclub.org
-access.csn.edu
-access.moric.org
-access.opco.com
-access.vch.ca
-accessgeneral.com
-accessingram.com
-accesswr.bannerhealth.com
-accounts.jelhi.net
-accu-doc.ch
-acebenefitsplus.co.uk
-achs.org.au
-actionpoint.ch
-adhbcn.net
-adhdtreatmenttoday.com
-admin.centerpoint.jelecos.com
-admin.iot.dtag.de
-admin.webcast.fi
-adoptionscentrum.se
-adplacer.com.au
-adtran.com
-adult.dl.rakuten.co.jp
-aecom.com
-afconsult.com
-afeyewear.com
-affinitycircles.com
-afflelou.net
-afflinksource.com
-afternic.com
-afterpayroll.com
-aftonxchange.com
-ag.729972.com
-ag.ibc88.com
-agents.nationalsecuritygroup.com
-agir-recouvrement.com
-agriinfo.copa-cogeca.be
-aktionsplan-allergien.de
-algoritam.hr
-algvpn.algonquincollege.com
-alle-inklusive.behindertenbeauftragte.de
-allianz.hr
-allmyaccounts.bankofamerica.com
-alltours.at
-alltours.info
-almliquor.com.au
-alperton.brent.sch.uk
-alpinecapitalbank.com
-alsformalwear.com
-alwaysillinois.org
-amail.centrum.cz
-american-summit-flood.com
-amexweb.com.mx
-amgusa.com
-amsbwm.org
-amwaylive.com
-analytics.sonymusic.com
-annssl01.fticonsulting.com
-antispam.hireahit.com
-apex.utpa.edu
-api.gogrid.com
-apo-vpn-02.apotex.com
-app.audit-navigator.nl
-applicaties.tln.nl
-appliedi.net
-applymarketforce.com
-applyshopnchek.com
-apps.revenuecycle.com
-aproposgeschenk.de
-ara.bahamaselectricity.com
-aravo.com
-arc.org.uk
-archivedata.com
-arizona.edu
-arkona.com
-arnecommunity.thomsonreuters.com
-arowanacapital.com
-arts.ac.uk
-asb.dk
-aschc.com
-ashgate.com
-asiandating.com
-aspraytshirt.com
-astral.com
-asugroup.com
-atl-c1.goodrich.com
-ats.openhire.com
-attask-ondemand.com
-aus-vpn.amd.com
-authentication.accorhotels.com
-autodiscover.net
-autodiscover.wrinklebrain.com
-autoradiostore.be
-autoradiostore.nl
-avastin.com
-awesomearmsnow.com
-axess.telcordia.com
-b2b.aksel.com.tr
-backup.datassur.net
-backupumbrella.net
-bahmueller.de
-bam.com.gt
-bamf.de
-bank4u.bancapopolare.it
-bank4u.volksbank.it
-bankingon.com
-barkoff.tv
-barronscatalog.com
-baxter.com
-bb3.utc.edu
-bbsihq.com
-bcbsal.org
-bcbsfl.recruitmax.com
-bedfordschool.org.uk
-behindertenbeauftragter.de
-bel.com.bz
-belvis.swibi.ch
-ben.billing.com.au
-benendenschool.net
-bennett.kent.sch.uk
-bentley.edu
-berryworld.co.uk
-bestobamacoin.com
-bestwhole.com
-beta-lighting.com
-beta.algodeal.com
-betcloud.com
-bevoelkerungsschutz-portal.de
-beztakcorp.com
-bfarm.de
-biddingforgood.com
-bidmc.org
-bidokaloosa.com
-biffalo.net
-bigcityslider.com
-biglobe.ne.jp
-bigwintracking.com
-billing.ntt-east.co.jp
-billonline.com
-biozid-portal.de
-biprod01.mfsasp.com
-bishops.org.za
-bisp-sportpsychologie.de
-bitfang.com
-bitlasso.com
-ble.de
-blooads.com
-bluefinsolutions.com
-blurayspelershop.nl
-bmwi-unternehmensportal.de
-bockelman.org
-bodycareshop.nl
-book.lowestairfares.com
-bookeo.org
-bottletops.tv
-brabantwater.nl
-brainforce.nl
-brandon.ca
-brcc.edu
-brightonsc.vic.edu.au
-broker.healthcompare.com
-brookfield.hants.sch.uk
-brotheroffers.com
-bsal.com.au
-bskytracking.com
-bsnparentnet.nl
-bsp.bradfieldcollege.org.uk
-bui.co.za
-bundesfinanzministerium.de
-businesszone.quester.at
-bux.ee
-buxtonbag.com
-buxtonmicro.com
-buxtonpalmwallet.com
-buxtonwallet.com
-buy57caddy.com
-buyaspray.com
-buybeautifulworshipcd.com
-buybenderballca.com
-buybionicwrenchonline.com
-buychiaseedsnow.com
-buyeasyreach.com
-buyemagrece.com
-buyfiftydollargold.com
-buyflirtygirlfit.net
-buyfranklinmint.com
-buygrillglovetv.com
-buygyrobowl.com
-buygyrobowlset.com
-buylastmorgans.com
-buymagictarptv.com
-buymagnetrim.com
-buymonstersteamjet.com
-buymorgansilver.com
-buymyarmyset.com
-buymyhairblock.com
-buyoptic1050.com
-buypedipaws.ca
-buypedipistol.tv
-buypetmd.com
-buypowerjuicerpro.com
-buypumpitfresh.com
-buyrazordock.com
-buysamowraiblade.com
-buysecretsolution.com
-buyshakeweightformen.com
-buyslimmettes.com
-buytexastail.com
-buythecrazycritters.com
-buythelittleredchef.com
-buythemousechaser.com
-buytheoptic1050.com
-buytheperfectbutton.com
-buythesnuggie.com
-buythinspin.com
-buytimelifeespanol.com
-buytomatofactory.com
-buywidgetlight.com
-buywindshieldwonder.tv
-buywonderhanger.com
-buyzipdo.com
-buzzcity.com
-byebye.de
-bzgs.ch
-bzport.net
-cachezone.cache.org.uk
-cagreatamerica.com
-calchoice.com
-caldicott.com
-campasol.com
-campus.himeji-du.ac.jp
-campus.norquest.ca
-campusharvest.org
-cancer-test.com
-candydirect.com
-capellfarmfinance.com
-capgemini.com
-capitalonedealsdone.com
-capvpn.capilanou.ca
-carcraft.co.uk
-cardlabconnect.com
-cardsdirect.com
-careport.carilion.com
-careylink.com.au
-caridianbct.com
-carilionlabs.com
-carlislermc.com
-carrinho.casashow.com.br
-cas.freud.com
-cathflo.com
-catie.ac.cr
-cbcag.edu
-cbfive.com
-cbsmail.constangy.com
-ccmail.cc.gatech.edu
-cdp.moduspec.com
-cduvpn.cdu.edu.au
-cedardoc-demo.com
-celebritysweatnelly.com
-centrum.cz
-centuriondirect.com
-cfai-centre.net
-channeladvisor.com
-chapmantripp.com
-checkoutblog.com
-chester.ac.uk
-chevrolet-leadengine.de
-chinookhosting.com
-chinooknetworks.com
-chl-peq.co.uk
-chnla.com
-choicebuilder.com
-ciaoitalia.com
-cisco.com
-cisr-ssl-vpn2.univ-lyon1.fr
-citi.bridgetrack.com
-citixcard.co.jp
-citonline.com
-citynet.net
-ckbmail.me
-clarity.com
-claritycon.com
-clarksoncollege.edu
-claroline.lakato.net
-classicsoftrock.com
-clickanalyzer.jp
-client.neftex.com
-client.uniastrum.ru
-clineavestudy.com
-cloroxspss.com
-cloud.santeesd.net
-cmithun.dojiggy.com
-cnw.albertaequestrian.com
-co-labs.org
-codarts.nl
-collaborate.sandia.gov
-colorectalcancerconnections.com
-combattesting.com
-commandaware.com
-commentor.dk
-compass.oxiana.com.au
-compellent.com
-comprabuxton.com
-comprariddexpulse.com
-compupaypartner.com
-computerstore.be
-comserving.com
-conduxio.com
-confluence.mediaspectrum.net
-connect.bangor.ac.uk
-connect.plan-b-gmbh.com
-connect.studygroup.com
-consoleshop.nl
-construction-ec.com
-contitiremanagement.com
-copeskoal.com
-correctionalbillingservices.com
-correio.ina.pt
-correo.orizonia.com
-correo.psl.com.co
-correo.tec.ac.cr
-cortesoft.com
-covlecremote.org
-covnet.covenantretirement.org
-coyoteportal.wc.edu
-cpas.cz
-cportal.sechan.com
-cprmc.com
-creditcards.citicards.com
-creditunionon.com
-crew.transavia.com
-croc.ru
-cryptolab.org
-csaa.com
-csp.cvut.cz
-customer.dgrefining.com
-customer.unicaresys.com
-customerconnect.scholasticbookfairs.com
-cv.occstrategy.com
-cvintranet.classifiedventures.com
-cwa.fandr.com
-cwa.telecomputing.no
-d-starjob.com
-d115.de
-dalinis.net
-dallasregionalmedicalcenter.com
-dasa-dortmund.de
-dataformas.com
-datasettlement.com
-davisregional.com
-daymet.org
-dbpn.com
-dc110.4shared.com
-dcvpn.cov.com
-de-mail.de
-deloitte.com
-deloitteresources.com
-deltek.forceprotection.net
-demo.crm4destinations.at
-dentalxchange.com
-depo.ru
-design.cscape.com
-design.nzzdomizil.ch
-designersnuggie.com
-destinationlighting.com
-developer.smartapp.tw
-development-school.jp
-device.fancast.com
-dexter.ansaldo-sts.us
-df.co.kr
-dhhnet.dhh.louisiana.gov
-dhs.edu.sa
-dice.com
-digi.mobilethink.net
-digicamshop.nl
-direct2wholesale.com
-disc.co.jp
-discomp.cz
-discovertotal.com
-dl.com
-dl.rakuten.co.jp
-docuware.com
-dokeos.ehb.be
-dolandesigns.com
-dosco.com.tw
-dr.rachisholm.com
-drimanagement.com
-drlists.com
-droppstv.com
-drsha.com
-dualsaw.com
-dualsawspanish.com
-durham.ca
-duvak.nl
-dwarest.disc.co.jp
-dws.com.au
-dynetics.com
-e-cap.fr
-e-healthnet.mhlw.go.jp
-e-lotto.be
-e-usluge.rijeka.hr
-earlybird.ae
-earnplaza.com
-earthclassmail.com
-easv.dk
-easyreachtv.com
-ebb.ubb.bg
-ecafe.lahey.org
-ecare.proctor.org
-echo.com
-echotrak.com
-eclipse.molagers.org
-ecom.peoples-bank.com
-ecommerce.colsubsidio.com
-ecwid.com
-edaccents.com
-edinet.cenet.ws
-education.vic.gov.au
-edumail.tokem.fi
-edumail.vic.gov.au
-eduportal.pl
-eduweb.vic.gov.au
-edziekanat.wsf.edu.pl
-ehs.dk
-eisweb.enterinfo.com
-elibrary.comfortsite.com
-elliottdevon.com
-elogistic.motorola.com
-elpodercd.com
-els.cis.fukuoka-u.ac.jp
-email.campus.uvt.nl
-email.fusionsys.com.mx
-email.greatershepparton.com.au
-email.hermos-vhm.de
-email.jyu.fi
-email.manutouch.com.hk
-email.masku.com
-email.medianewsgroup.com
-email.sjbcommunity.ca
-email.starair.dk
-email.stpeters.sa.edu.au
-email.svcfs.org
-email.uk.betfair.com
-email.unity.net.nz
-email.wsd1.org
-email.yorksj.ac.uk
-emeamail.corp.salesforce.com
-emericalinksite.com
-emersonhosp.org
-emerycat.ca
-emploi.sitq.com
-employee.coastmountainbus.com
-enav.it
-endlager-asse.de
-epm.com.co
-eportal.shelfieldcommunityacademy.co.uk
-epoti.abanka.si
-equippers.com
-equitydriver.com
-ereaderstore.nl
-ereg.biz
-ergonet.pl
-erhgroup.com
-ericom.com
-esdlife.com
-eshbelsaas.co.il
-esher.ac.uk
-esloo.nl
-espaicambrabcn.org
-espprofitlink.com
-estrellamountain.edu
-etk.fi
-ettu.nl
-eurobank.pl
-europlan.ru
-evergabe-online.info
-exch.naaco.ru
-exchange.clarkslegal.com
-exchange.cs-soreltracy.qc.ca
-exchange.datacom.com.au
-exchange.intranet.neumanpools.com
-exchange.keyhie.org
-exchange.khlim.be
-exchange.raakict.nl
-exchange.uetcl.com
-exchange4u.cz
-exeter.ac.uk
-exmail.businesslinksoutheast.co.uk
-ext01.lifesouth.org
-extra.chrysler.de
-extranet.cec.org
-extranet.lackverband.de
-extranet.metabolomicscentre.nl
-extranet.pandasoftware.com
-extranet.sysmex.com
-eyelovelytv.com
-eyeonamd.com
-f-seneca.org
-faberwebshop.nl
-falcontrading.ro
-fanniemae.com
-farsigeotech.com
-fastsearch.com
-fcaamd.com
-fdc.org.br
-felixlive.com
-fema.gov
-fenwalinc.com
-ffis.es
-fhvasa01.flhosp.org
-fire.tas.gov.au
-firma.pcs.cz
-firstam.net
-firstassistinsurance.com
-fishermenshospital.com
-fit.ba
-fiu.edu
-fjarvinna.grund.is
-fleetwoodsc.org.uk
-flhsmv.gov
-flirtygirlfitca.com
-floodonline.com
-floodplus.net
-flydenver.com
-fmpro.cati.com
-folkestonegirls.kent.sch.uk
-footnote.com
-ford.com
-forms.techdata.net
-frankfurt-oder.de
-freebioven.com
-freehandycaddy.com
-freerejuvenateca.com
-freerejuvenatetv.com
-fridgelockertv.com
-fs-efo.jp
-ftp.maedapat.co.jp
-fucam.ac.be
-fuchs-datentechnik.de
-fueldoctorcanada.ca
-fueldoctorfd47.com
-futuretrails.com
-g4s.se
-gakushuin.ac.jp
-gamania.com
-ganymede.chester.ac.uk
-garmin.com
-gate.we-learn.org.uk
-gatech.edu
-gatekeeper2.aspectsecurity.com
-gateway.madisoncity.k12.al.us
-gbssg.ch
-gcc.edu
-gcportal.guycarp.com
-gda-portal.de
-gemini-apx.com
-genentechmm.com
-geniusreport.com
-geomant.com
-geometrik.golder.se
-geonosis.itsso.gc.ca
-georgefox.edu
-gepon.org
-germfree.org
-get1933caddy.com
-get2instantcover.com
-getbendaroostv.com
-getbestline.com
-getboomaringnow.com
-getclassicsforrelaxation.com
-getcozycolors.com
-geteasyreach.com
-getflexibrite.com
-getflipperremote.com
-getglowbeam.com
-gethandyvalet.com
-gethealthsupplies.com
-geticanonlyimaginecd.com
-getiknowkey.com
-getmiracleplunger.com
-getmonstersteamjet.com
-getmorgans.com
-getmybedsidetable.com
-getopeneyesofmyheart.com
-getparkbillstv.com
-getpetmdnow.com
-getpopmemories.com
-getrejuvenate.com
-getromancingthe70scds.com
-getsanistep.com
-getscrubglove.com
-getslimts.com
-getthewonderhanger.com
-getwiperwizardnow.com
-getworkout180.com
-getworldatwar.com
-getworldofreading.com
-getyourpajamajeans.com
-getzerogerm.com
-gfkdaphne.com
-ggusd.us
-ggy.com
-gisclimatechange.org
-gmb.org.uk
-gmxy.org
-goamp.com
-golan.wisela.org
-gomopa.net
-goodfellowbros.com
-gorm.tauron-pe.pl
-gr-espel.com
-greenpower24.com
-grillingadget.com
-grizridge.com
-grmetrieve.com
-groenewelle.nl
-grotiuscollege.nl
-gruenderpreis-nominierung.de
-guardiant.com
-guardiantauto.com
-guhsdaz.org
-gw2.fli.bund.de
-gw2.vincentz.de
-haken.mynavi.jp
-hancockfabrics.com
-handelwandel.com
-hangikredi.com
-happyoz.com
-harrisdseries.com
-hartslagmetercenter.be
-harvestbible.org
-hastingsdirect.com
-hastingsessential.com
-hatchearlychildhood.com
-hcc-tripod.hoffmancorp.com
-headsetshop.nl
-healthportdirect.com
-heartoflancaster.com
-heeltasticpedeggpromo.com
-heelusa.com
-helpdesk.v-h.nl
-helpdesk.yhc.edu
-helwanbb.com
-hensongroup.com
-her2genes.com
-herceptin.com
-herconnection.com
-hire.acxiominsight.com
-hma.com
-hmc.it-ernity.nl
-hmc.vdx.nl
-hnvpn.hostnordic.com
-hoganas.se
-hoken-clinic.com
-hollywoodhobobagaccessories.com
-honeybakedonline.com
-honeywellusersgroup.com
-hoodhomedelivery.com
-hoofdtelefoonstore.nl
-hopline.net
-hosttraxx.com
-householdshop.nl
-housingservices.com
-houstonisd.org
-howtowritearesume.net
-hox.biz
-hq.nimvpn.com
-hqaccess.acs.org
-hro-gate.aida.de
-hrwow.com
-hsacalifornia.com
-hubpen.biz
-hull.ac.uk
-humana.recruitmax.com
-hurleymc.com
-hurmail01.hurriyet.com.tr
-huronconsultinggroup.com
-huttonhotel.com
-i-95alternatives.com
-i-teamroom.com
-i485project.com
-iata.invoiceworks.net
-ibank.mpbsecure.com
-ibank.sabank.hr
-ibc123.com
-ibc168.com
-ibcbet.com
-ibet888.net
-ibweb.alphabank.ro
-icecream-money.com
-iconnect4.interiorhealth.ca
-id.telecom.pt
-identity.ppdi.com
-idrettsmail.no
-ie.com
-ifbyphone.com
-igaseguros.com.br
-igniterealestatesite.com
-il.systemb2b.com
-images.bdotickets.com.au
-img.mspub1.com
-imgroup.com
-imgssl.shinsegae.com
-imperva.com
-ims.esdcar.org
-imsbackyardfightclub.com
-imsbi.com
-imsbuyquicklawn.com
-imschools.org
-imslappertrays.com
-imsmightybite.com
-incircle.lagrange.edu
-indraweb.indra.es
-ineways.eu
-inewayscanada.com
-infobear.bridgew.edu
-inframan.nl
-ing-diba.at
-ing-hipotecaria.mx
-innmarinsecure.com
-insattningsgarantin.se
-inside.consona.net
-inside.nhl.com
-insight.smartdm.com
-insite.henrich.de
-instantfisherman.com
-instantintelligence.com
-integrishealth.recruitmax.com
-intellilink.visa.com
-interact2.ird.govt.nz
-interconnect.be
-interhosting.interfree.it
-interiorsandsources.com
-intern.abm-energie.de
-intern.abm-service.de
-internal.imaginets.com
-intersourcing.com
-intra.svendborg-gym.dk
-intranet.2nsb.org.au
-intranet.a3is.com
-intranet.abesse.hu
-intranet.bexleygs.co.uk
-intranet.carrel.fr
-intranet.chilcote.bham.sch.uk
-intranet.frederikssund.dk
-intranet.grupocopisa.com
-intranet.hallwilcox.com.au
-intranet.itsduero.es
-intranet.majedie.com
-intranet.mhc.cc
-intranet.peckham.org
-inverhills.edu
-investissementsdavenir.agencerecherche.fr
-iowaworkforce.org
-ip.clubcorp.com
-ipayables.net
-ipi-interactive.com
-iqmetrix.com
-iris.colum.edu
-irrc.co.jp
-ishbs.com
-isi-net.com
-isupplier.americanlafrance.com
-it-consult.net
-ito.org.tr
-itrackit.net
-itsfogo.com
-itunescards.co.za
-iva.de
-ivoo.certiris.be
-j-union.com
-jac.go.jp
-jamestownregional.com
-japanpost.jp
-jasaga.or.jp
-jeddah.zfp.com
-jerseymanagedhosting.com
-jerusalem.muni.il
-jmlscratchremover.com
-jnet.agsys.sompo-japan.co.jp
-joagift.com
-job.disc.co.jp
-jobmgr.disc.co.jp
-jobs.carlsonhotelsasiapacific.com
-jobs.cas.org
-jobs.sourcefire.com
-journie.net
-jr.com.au
-jta.jtafla.com
-jumbomortgage.citimortgage.com
-k12.al.us
-k12.nm.us
-k12.sc.us
-k12.wa.us
-k12.wi.us
-kabukiza-kabu.com
-kalender.nakskov-gym.dk
-kanjam.com
-katlehotrust.co.za
-kawacki.com.br
-kbacmportal.net
-kcc.com
-kddi.ne.jp
-keybankdeveloper.com
-kfz-versicherung.faz.net
-kgh.on.ca
-kicho.shoko-shimane.or.jp
-kidneycancerconnections.com
-kingsdominion.com
-kintetsu-bs.co.jp
-kit.ac.jp
-kkcom.co.jp
-klerx.biz
-klikbca.com
-klive.kellogg.edu
-klz.org.uk
-kme.ch
-koffiecenter.be
-kpchoicesolution.com
-kpos.melsc.co.jp
-kramesondemand.com
-kredinor.no
-krungsrifileserver.com
-krungsrimobile.com
-ktr.com
-kuk-networks.de
-kymweb.tokoha-u.ac.jp
-lambertconsulting.ch
-lamda.org.uk
-lancasterregional.com
-laptopshop.be
-larix.cevak.cz
-lavprisfly.no
-lc.leics.sch.uk
-lcgs.tas.edu.au
-leap.neustar.biz
-learningseat.com
-learnsheffield.com
-leben-hat-gewicht.de
-leerlingmail.niftarlake.nl
-legalease.jmls.edu
-lendingtreeautos.com
-leopards-den.us
-lexor.lsp.at
-library.failteireland.ie
-lifeaction.net
-lifenetems.org
-liftnfix.com
-lightstone.co.za
-linkservicepro.com
-linkzeal.com
-lion.wild.net
-lipa.ac.uk
-listech.com
-liu.se
-livingwithcll.com
-livingwithlymphoma.com
-lkmc.com
-lks.jackhenry.com
-lmmis.com
-lnrmc.com
-loans.citifinancial.ca
-login.aderantpm.com
-login.bild.de
-login.clientaccess.net
-login.smmj.com
-logixs.com
-logowanie.osemka.pl
-london.edu
-loterie.ch
-loucoll.ac.uk
-lucentis.com
-lucky-pantry.net
-luckybuy.com.tw
-ludus.maribo-gym.dk
-ludus.midtfyns-gym.dk
-ludusweb.frberg-gym.dk
-ludusweb.fredericia-gym.dk
-ludusweb.herninghfogvuc.dk
-ludusweb.middelfart-gym.dk
-ludusweb.toender-gym.dk
-ludusweb.tornbjerg-gym.dk
-ludusweb.vejle.dk
-ludusweb.vucroskilde.dk
-ludusweb.vucstor.dk
-ludusweb.vuctm.dk
-lukeassoc.net
-lumalamps.com
-lungcancerconnections.com
-lusitania-cs.pt
-lvmpd.com
-lvs1.com
-m.aafes.com
-maandag.nl
-maartenluther.calvijn.nl
-maastrichtuniversity.nl
-magtek.com
-mail.accretivehealth.com
-mail.aeat.co.uk
-mail.albany.k12.ny.us
-mail.albil.com.tr
-mail.almajles.gov.ae
-mail.amrita-parus.ru
-mail.anbank.com
-mail.aps.k12.co.us
-mail.arcelormittal.kz
-mail.asapnet.nl
-mail.asmnet.com
-mail.avanquestusa.com
-mail.axemusic.com
-mail.axens.net
-mail.banquemisr.com
-mail.bedeck.co.uk
-mail.behr.ch
-mail.cba.edu.sa
-mail.centrum.cz
-mail.charltonschool.com
-mail.childrens.com
-mail.configura.com
-mail.connectivityit.com.au
-mail.cws.biz
-mail.dollardcollege.nl
-mail.e-farmcredit.com
-mail.eatough.net
-mail.ebsi.com
-mail.escrotrans.com
-mail.federalequipment.com
-mail.fozzy.ua
-mail.geninf.com
-mail.ggs.vic.edu.au
-mail.globeteam.com
-mail.gmrgroup.in
-mail.govwentworth.k12.nh.us
-mail.gpworldwide.com
-mail.grafil.com
-mail.groupegt.ca
-mail.gruppoveritas.it
-mail.gtri.gatech.edu
-mail.gunnebo.com
-mail.haderslev-gym.dk
-mail.harbourmsp.com
-mail.harvestnaperville.org
-mail.havantacademy.co.uk
-mail.hoegh.com
-mail.houdijk.com
-mail.hsd153.org
-mail.hsventures.org
-mail.ipswichschool.net
-mail.itc.net.sa
-mail.itgsolutions.com
-mail.itility.us
-mail.jarfalla.se
-mail.jetblue.com
-mail.jjuc.no
-mail.jus.cz
-mail.justinho.com
-mail.kairos-it.com
-mail.kces.de
-mail.kingscollegeguildford.com
-mail.kit.ae
-mail.kks.se
-mail.klingenberg.com
-mail.kvanum.com
-mail.lancercatering.com
-mail.loreto.nsw.edu.au
-mail.maristcollege.school.nz
-mail.marnixcollege.nl
-mail.mauser-cabs.at
-mail.mbsds.com
-mail.mcx.pl
-mail.meau.com
-mail.metrostav.cz
-mail.metrotrains.com.au
-mail.mf.dk
-mail.micronav.co.uk
-mail.midco.net
-mail.middevon.gov.uk
-mail.mihs.org
-mail.milesplatts.co.uk
-mail.minsterlaw.co.uk
-mail.moe.gov.my
-mail.mosa.gov.qa
-mail.mulhouse.fr
-mail.nap.gsic.titech.ac.jp
-mail.normandale.edu
-mail.npaid.org
-mail.ofg.lv
-mail.oshochem.com
-mail.ouc.ac.cy
-mail.paratek.com
-mail.plainconcepts.com
-mail.primevision.net
-mail.pukzh.ch
-mail.red-red.ru
-mail.reiv.com.au
-mail.rexel.nl
-mail.richardhicks.com
-mail.ridgian.co.uk
-mail.rittal.be
-mail.rkbs-de-vlinder.nl
-mail.ruudlighting.com
-mail.saic-dc.com
-mail.sarasamerica.com
-mail.serralves.pt
-mail.skmc.gov.ae
-mail.skov.com
-mail.slt.com.lk
-mail.smart3group.com
-mail.softlinesolutions.com.au
-mail.spotlight.co.za
-mail.stadsmissionen.se
-mail.stccs.ca
-mail.stuwebportal.net
-mail.styletronix.net
-mail.svsd.ca
-mail.tegola.ru
-mail.tgn.com
-mail.the-ascott.com
-mail.tox-us.com
-mail.transunion.com
-mail.tridenttech.edu
-mail.tvfr.com
-mail.ugs.com
-mail.umfmpookies.info
-mail.uottawa.ca
-mail.valdichienti.net
-mail.vejlehs.dk
-mail.vicore.se
-mail.vmkfb.se
-mail.wasbol.nl
-mail.wcc.vic.edu.au
-mail1.asfourcrystal.com
-mail1.sog.ga.gov
-mail2.law.stetson.edu
-mail2.lisluanda.com
-mail2.marqnet.com
-mailer.kuehnel-web.org
-mailhub1.cpsb.org
-maisoku.co.jp
-mallorca.co.uk
-manabo.chukyo-u.ac.jp
-mandat24.de
-mangawebstore.com
-manifest5.craig-is.com
-manmail.nice.org.uk
-manukinvest.com
-maritimetacticalsecurity.com
-mars.micex.ru
-massport.com
-matgenie.com
-matricis.com
-matsuzakaya.co.jp
-mayvillestate.edu
-mbanking.ncrwebhost.mobi
-mbdvd.com
-mc4me.mccd.edu
-mchvpn01.midcoasthealth.com
-md-whistleblower.com
-meagpower.org
-meathvec.ie
-medewerker.jouwregardz.nl
-media.filas.pl
-media.wschiro.edu
-medicalcannabismanager.com
-medicalert.co.nz
-mediclinic.co.za
-meinkonto.orf-gis.at
-memberadviser.com
-memoryshop.be
-memoryshop.nl
-memphis.edu
-merchantcart.net
-meriden.nsw.edu.au
-merlin.ca
-metalinq.com
-metrogr.org
-metrostarsystems.com
-mg.afimilk.co.il
-mhs1.3f.dk
-mhsecure.dmcontact.com
-michelsville.com
-midwestregional.com
-miele.co.uk
-migdataengine.cms.hhs.gov
-mightyfixit.com
-mightymendittv.com
-mightythirstytv.com
-milkmandelivers.com
-mill-hillcollege.nl
-miller.co.jp
-milsoftssl.com
-mindbusiness.org
-mingorp.hr
-misim.gov.il
-mizuho-int.com
-mizuno.jp
-mizunonetorder.com
-mmrpatientview.com
-mobile.animate-shop.jp
-mochibot.com
-mochimedia.com
-mochipass.com
-mod.yodobashi.com
-monbureau.sophiaconseil.fr
-monserviceconciergerie.com
-montebello.ridgevineyards.net
-montroseaccess.org.au
-moralesfamily.net
-moss.ise.de
-mp01.canon.jp
-mp3shop.be
-mrc-ws.mrceweb.com
-mrclaurentides.qc.ca
-mrmrshandycaddy.com
-msauth.mainstreet.fiserv.net
-msbmyndigheten.se
-mscw.vic.edu.au
-msexchange.lyon.edu
-msg.gov.hu
-msmail.mvnu.edu
-msu.edu
-msvpn.wusm.wustl.edu
-mtimail.metal-technologies.com
-mtvninvoices.com
-mwn.de
-mws.acculynk.net
-mx.twfp.com
-mxs.deff.ru
-my-aime.net
-my-hammer.de
-my.comprehensivesleep.com
-my.ecwid.com
-my.sandi.net
-my.snhu.edu
-my.wcupa.edu
-myapps.skiffmed.com
-mybethanyranchhome.org
-mybffnow.com
-mycardprinter.com
-mychart.carilionclinic.org
-myclinicallogic.com
-mycundus.com
-myevolver.com
-myflcourtaccess.com
-myfloridacounty.com
-myfloridaremit.com
-mygetmighytighty.com
-mygiftregistry.co.za
-myhammer.co.uk
-myhammer.com
-myhdwraparoundstv.com
-mymail.warnerconnect.com
-mymccc.mc3.edu
-mymcso.com
-mymedicallocker.com
-mymedicalrecordsmd.com
-mynha.com
-mynhatest.com
-myoffice.eu.goodyear.com
-myoffice.na.goodyear.com
-myparceldelivery.com
-myparkbillstv.com
-myportal.vhschicago.com
-myriddexpulse.com
-myservices.suffolk.ac.uk
-mystorage.cloudleverage.com
-myvpn.ubc.ca
-mywagnercat.com
-n-fukushi.ac.jp
-namg1.ipsos.com
-nas.gov.ua
-nasadvd.com
-nat.tribalddb.net
-navicast.jp
-nbrc.org
-nbst.org.uk
-nccrimecontrol.org
-ndl.qc.ca
-ndr.nu
-nectarwallet.com
-netcafe.ft.dk
-netleasing.ersteleasing.hu
-netmailing.liderexpress.hr
-netorder.sogo-seibu.co.jp
-netpractice.com.au
-nettkontoret.kredinor.no
-newcollege.ac.uk
-newvistalive.com
-nexusos.net
-nhk-ep.com
-nhs.uk
-nicovideo.jp
-nikkei.co.jp
-njreflood.com
-nochex.com
-nomade.etu.univ-nantes.fr
-nordea.com
-nordea.se
-nordeanetbank.dk
-notebookbuffer.com
-notes.parliament.qld.gov.au
-noticiastelemicro.com
-nousinfo.com
-novocorreio.ultra.com.br
-nowa.ntelos.com
-nr.edu
-ns002.toshiba-sol.co.jp
-nsw.gov.au
-nswmentors.com
-ntdira.com
-nuskin.com
-nuungolf.com
-nuwaveoven.com
-nuwaveovennow.com
-nzmail.deloitte.co.nz
-oasiswebvpn.net
-obdp.org
-odlmarkets.com
-office.mls.lib.il.us
-office.occ.on.ca
-office.rooscs.nl
-office.tatemono.com
-officemd.net
-olchs.org
-ollusa.edu
-olmsted.mn.us
-on-linepojisteni.cz
-onefmcremote.com
-onestop.gsi.go.jp
-oneuso.org
-onforce.com
-online-processingcenter.com
-online.alphabank.com.cy
-online.julbo-rx.com
-online.mycontoso.de
-online.shamir.es
-online.shamir.fr
-online.shamirlens.co.uk
-online.steens.dk
-onlinebanking.bankofarizona.com
-onlinebanking.bankofarkansas.com
-onlinebt.de
-onlinelibrary.wiley.com
-onlineticket.jp
-ontarioinsco.com
-ontimeweb.itfocus.co.nz
-onyxinv.com
-opsource.net
-ordemenfermeiros.pt
-order.pvpl.com
-orderdiscoabs.com
-orderoxyclinical.com
-orderpacecoach.com
-osaki-eweb.com
-otpbank.hu
-outlook.belam.lv
-outlook.delichtenvoorde.nl
-outlook.fritzhansen.net
-outlook.haarlem.nl
-outlook.hfwu.de
-outlook.it-service-schwadorf.de
-outlook.kennedykrieger.org
-outlook1.wilshire.com
-outlookonline.nl
-overblick.se
-ovo-zaanstad.nl
-owa.addon.de
-owa.afridata.net
-owa.byui.edu
-owa.cancom.de
-owa.dannenbaum.com
-owa.dist113.org
-owa.dunnhumby.com
-owa.edipresse.ch
-owa.electric-house.com
-owa.esn.at
-owa.exe.it
-owa.fh-jena.de
-owa.gfe.com
-owa.gft.com
-owa.gtlaw.com.au
-owa.hcuge.ch
-owa.iadt.ie
-owa.ic3.gov
-owa.isl-automotive.com
-owa.itsindy.com
-owa.iwco.com
-owa.jabirumetals.com.au
-owa.jacksonkelly.com
-owa.jetstar.com
-owa.kajak.fi
-owa.kan.se
-owa.lrgs.org.uk
-owa.mainroads.wa.gov.au
-owa.midroc.se
-owa.namfg.com
-owa.narsaq.gl
-owa.nd.edu.au
-owa.nordakademie.de
-owa.otani.ac.jp
-owa.palama.gov.za
-owa.parlement.nl
-owa.perceptis.com
-owa.pinklotusbreastcenter.com
-owa.qaqortoq.gl
-owa.rcha.net
-owa.roeverbroenner.de
-owa.rrpub.com
-owa.sktf.se
-owa.smh.ca
-owa.spservicing.com
-owa.tecnicasreunidas.es
-owa.uni.lu
-owa.wdm-ia.com
-owamail.calu.edu
-p2pia.com
-pacnetservices.com
-pagos.uveritas.ac.cr
-pagport.jp
-pamperedchefconsultantcardapplication.com
-parking.bristolairport.co.uk
-partille.se
-partners.conocophillipsalaska.com
-partners.org
-pathfinder.woolworths.co.za
-pathrocket.com
-pay.cimbal.com
-paybacktime.com
-payment.soulultimatenation.com.tw
-pc-one.net
-pc-soft.info
-pct.edu
-pedirefills.ca
-penncommons.com
-pent-valley.kent.sch.uk
-perfectmoney.com
-perkinelmergenetics.com
-perse.co.uk
-perspectica.telmetrics.com
-pethairpicksytv.com
-petshed.com
-pgcwl.com
-phwebvpn.org
-picnik.com
-picnikr.com
-pictureitpostage.com
-pieseautoaccesorii.com
-pim.hypoport.de
-pimkie.de
-pimkie.es
-pimkie.it
-pineconeresearch.com
-pl-fax.com
-planapps.org
-planet-tachyon.com
-plasmacool.ca
-plasmaquebec.com
-platform-one.suffolkone.org
-playlsi.com
-playneverwinter.com
-playnextlevel.com
-plusuk01.smartsgroup.com
-pluto.fipotex.com
-pmptech.biz
-pocketchair.com
-poczta.adamed.com
-poczta.km-net.pl
-poczta.umwm.pl
-pocztam.pap.pl
-pods.thinkorswim.com
-pokervt.com
-popularglasses.com
-portaal.steenbok.com
-portaal.veenendaal.nl
-portail.mairie-blagnac.fr
-portail.mont-notre-dame.qc.ca
-portal.asms.sa.edu.au
-portal.capital-tour.ru
-portal.collaborative.com
-portal.colonialsd.org
-portal.covenantsolutions.org
-portal.crh-corp.net
-portal.gses.l-3com.com
-portal.halcyonit.com
-portal.hallco.org
-portal.hc-vlc.nl
-portal.hello.ch
-portal.hpisd.org
-portal.hutto.txed.net
-portal.klz.org.uk
-portal.marchesschool.net
-portal.mez.nl
-portal.mhyork.org
-portal.pascack.k12.nj.us
-portal.peckham.org
-portal.s1.com
-portal.sigmax.nl
-portal2.znb.nl
-portale.ervet.it
-posta.dsi.gov.tr
-posti.hippos.fi
-powerschool.lawrence.k12.ma.us
-powershiftfastcash.com
-precash.com
-preferredhomecare.com
-premierinc.com
-premiodestaque.com
-princeton.edu
-printershop.be
-private.stelizabeth.com
-pro.mothers-auction.net
-procapita.gfbs.se
-profil.centrum.cz
-profilecenter.ru
-profitbuilderenroll.com
-projectinsight.cbre.com
-promail.ru
-proposalsystem.seic.com
-provident.com
-provider.dchpkids.com
-providers.tufts-health.com
-ps.dvusd.org
-ps.meridianschools.org
-psiwebmail.com
-psyquel.com
-ptstaxonline.com
-pufferfish.de
-pulmozyme.com
-q8car.com
-qbranch.se
-quickreg.ci.irvine.ca.us
-quon.asia
-qvcliquidation.com
-r4.musicstationonline.com
-ra.hntb.com
-ra.libertymgt.com
-rahorizons.com
-rakuraku-market.com
-rakuten.co.jp
-rampvpn.tessituranetwork.com
-raona.com
-rasowa.ramairservices.com
-rbc.bridgetrack.com
-reach-clp-helpdesk.de
-reaktor.no
-realsuperpass1.smartsubs.net
-register.daum.net
-register.lynctrial.com
-registration.gov.gg
-regmurcia.com
-rehabcare.com
-rem.clow.net.nz
-remote.4tw.dk
-remote.aa.net.nz
-remote.ap.asm.com
-remote.clovertowing.com
-remote.daugherty.com
-remote.dumasmining.com
-remote.graduateleverage.com
-remote.hbcs.org
-remote.hrjconsulting.com
-remote.hselaw.com
-remote.inshuckch.com
-remote.ipmotion.de
-remote.neighborimpact.org
-remote.noyes-hospital.org
-remote.rttg.co.uk
-remote.sb-groep.nl
-remote.shetland.gov.uk
-remote.slalomdemo.com
-remote.sticares.org
-remote.thechurchofgod.org
-remote.unitedspinal.org
-remotecall.jp
-remoteportal.nasonhospital.com
-remotingcoders.com
-rencap.com
-reporthawk.com
-reporting.accesshma.com
-reportingportal.com
-resalesmart.com
-resealandsave.com
-research.majesticsteel.com
-researcharchive.wintec.ac.nz
-reservation.tokyodisneyresort.co.jp
-resource-ctr.com
-rewardgateway.co.uk
-rewardgateway.com.au
-rewardgateway.ie
-rewardplus.co.uk
-rfihub.com
-rgdata.com.ua
-rhwebmail.com
-riddexpulsenow.com
-rightathomehomestay.com
-rio.edu
-risk-buster.com
-rismail.rafflesis.com
-ristken.com
-rituxan.com
-riverartsfestmemphis.org
-riveroakshosp.com
-riverviewregional.com
-rk.sjdc.co.jp
-rms.unlv.edu
-rocmondriaan.net
-rodino.ro
-rome.faber.co.uk
-ross.fs.fed.us
-routercenter.be
-routercenter.nl
-rozodoniy.com
-rs.gov.br
-rsasurveys.co.uk
-rsg-nc.rsgsystems.com
-rsmn.reschini.com
-rsmoss.rsmedical.com
-rsracing.com
-rt.rtoaster.jp
-runnet.jp
-runraceresults.com
-rush.edu
-s-immobilien.de
-s-yoyaku.city.sagamihara.kanagawa.jp
-s-yoyaku.city.urayasu.chiba.jp
-s.ixiaa.com
-s.ncp.imrworldwide.com
-s1defense.com
-s2task.globe.gov
-saab-leadengine.de
-saas.dynamate.eu
-saas.nines.nl
-safetekusa.com
-sail.iwcc.edu
-saksincorporated.com
-samba.huji.ac.il
-samsclub.com
-samworthenterpriseacademy.org
-sandingglovestv.com
-sandwellschools.org.uk
-sas.com
-sbdc.uga.edu
-sbiapps.sitesell.com
-sbsgroupusa.com
-sby.co.il
-scad.edu
-scartreatmentnow.com
-scca.com
-sch.uk
-schicktech.com
-scu-vpn.scu.edu.au
-sd68.bc.ca
-sdx-ag.de
-search.petfinder.com
-secep.net
-secservizi.it
-secure.aceinsurance.com.au
-secure.anzmoneymanager.com
-secure.atriacom.com
-secure.court.gov.il
-secure.cst.org
-secure.cygnusresources.com
-secure.earthclassmail.com
-secure.elcofduval.org
-secure.globalstar.com
-secure.igliving.com
-secure.makinglifebetter.com
-secure.mbsbillingsolutions.com
-secure.mcpa4you.org
-secure.mdrc.org
-secure.merchantcart.net
-secure.mybybox.com
-secure.mycashnow.com
-secure.nicoga.jp
-secure.passport.mnginteractive.com
-secure.personalwatercraft.com
-secure.pompvanhetvolk.be
-secure.reboot.ca
-secure.sbmonline.com
-secure.sjpharmacal.com
-secure.snowmobile.com
-secure.www.contracostatimes.com
-secure.www.dailybreeze.com
-secure.www.denverpost.com
-secure.www.mercurynews.com
-secure.www.montereyherald.com
-secure.www.presstelegram.com
-secure.www.sbsun.com
-secure.your3creditreportsinstantly.com
-secure.zeelandnet.nl
-secureaccess.cacu.com
-secureconnect.uis.edu
-securedatacollection.com
-securefeed.co.uk
-securible.com
-sedgemoor.gov.uk
-seha.ae
-seibu.jp
-seibubus-gt.jp
-seisentopbin.com
-selfservice.vsource.com
-send.group.com
-sercel.com
-serv.webhostnr1.com
-service.hkn.de
-servicebund.com
-servicedesk.geoeye.com
-servicingconnect.com
-servizi.allianzbank.it
-servizi.atime.it
-sesameconnection.org
-setnlift.com
-sf-vpn01.embark.com
-sfsj.se
-sgw.ngxo.trinity.ebay.co.uk
-sgw.ngxo.trinity.ebay.it
-shakeweighttimer.com
-shamir.pt
-share.epeerless.com
-sharepoint.centurionmp.com
-sharepoint.convergys.com
-sharepoint.smartit.ch
-sharepointgermany.cinram.com
-sharepointgurus.net
-sharpmail.sharpamericas.com
-shavershop.be
-shavershop.nl
-shiki.gr.jp
-shop.fatboy.de
-shop.fatboy.nl
-shop.ftv.com.tw
-shop.rcn.com
-shop.whatsinyourcity.net
-shop4.vcomshop.com
-shopbase.finetunes.net
-shopnchekshopper.com
-shopoutdoornebraska.ne.gov
-shr.ro
-shsmail.swedish.org
-shutdown.cfs.iupui.edu
-sigmakudos.com
-silkroad.com
-simonizfixittv.com
-simplewebmanagement.com
-sinergiefinancial.net
-siriusxmrewards.com
-sjomannskirken.no
-skyliner.ec.keisei.co.jp
-smart.otpbanka.hr
-smartdrv.com
-smartmoptv.com
-smartphoneshop.be
-snuggie.ca
-snuggietv.com
-snuggievarsity.com
-socketstore.co.uk
-sodexhovpn.com
-sodexovpn.com
-softsupercoolertv.com
-sogo-gogo.com
-sols.org
-solvethatdebt.com
-soquij.qc.ca
-southernwine.com
-southlakecarroll.edu
-sp.hanoverva.gov
-sp.se
-sparrapid.se
-speedyspark.com
-spilldaddy.com
-splogin.se
-springer-sbm.com
-springhillregional.net
-sprint.com
-sprint.net
-spss-asp.com
-sr-owa.walter.net.au
-src.sk.ca
-ss3.e-state.co.jp
-ssl-vpn1.aau.dk
-ssl.clinique-pasteur.com
-ssl.siih5962.fr
-ssl.weniger-verbrauch.de
-ssl2.americanprogressaction.org
-ssl3.costar.com
-sslvpn.accent.nl
-sslvpn.thrivent.com
-stadspoort.asp4all.nl
-staff.ftc.health-partners.org
-staff1.f-i-f.co.uk
-startrack.gfkrt.com
-startrekonline.com
-state.fl.us
-state.ks.us
-state.wy.us
-static.limewirestore.com
-statistik.msb.se
-stc.ac.uk
-steelhorsecomputers.com
-stemcellskintherapytv.com
-stilltracking.com
-stleonards.vic.edu.au
-stlogic.com
-stofzuigerstore.be
-stoneware.cloverdale.k12.in.us
-store.homeheartbeat.com
-stores.channeladvisor.com
-stormgenius.com
-strideeveryday.com
-stringfellowmemorial.com
-studmagic.com
-subjectivemetrics.com
-summitmedicalcenter.net
-sunriseearthdvd.com
-superhub.hk
-support.bsc-ideas.com
-support.cryptas.com
-support.dridefault.com
-support.goshen.bluestarpro.com
-support.landsteinar.nl
-support.rosebudtech.com
-supportlink.net
-svelvik.skole.d-ikt.no
-sw.quirinale.it
-sw4men.com
-sweettracking.com
-switch2verizonfios.com
-swivelwonderhanger.com
-syllabus.doshisha.ac.jp
-symetra.com
-synergy.workarea.nl
-sys.ins-uni.co.jp
-syspro.com
-system.cord.osaka-geidai.ac.jp
-systemb2b.com
-tapapp.com
-tasgroup.cl
-tasmantest.sdc-online.net
-tastiwave.ca
-tastiwave.com
-tastiwavepan.com
-taxport.convey.com
-taxslayer.com
-taxslayerbooks.com
-taxstatusnow.com
-taxtes.com
-tc4men.com
-tco.cfbt-inspections.com
-teachingboxes.org
-tecdlr.com
-technology-security-associates.com
-techscaler.com
-telaris.wlu.ca
-teleplan.no
-tellabs.com
-terrabanking.romexterra.ro
-tewkesburyschool.org
-tfelements.com
-tgw.com
-theadspot.tv
-thealabamacollegesnuggie.com
-thebarkoff.com
-thecinema.in
-thecomfortfurnace.com
-thediamondstore.co.uk
-thedownsschool.org
-theezstringer.com
-thefushigi.com
-thehandyvalet.com
-thehexlightsite.com
-themightysuperstore.com
-thepalmwallet.com
-thepayplace.com
-therockradionetwork.secure.myhosting.net
-thesecuraoven.com
-theshedd.org
-thesource.freemanco.com
-thesuperjuicer.com
-thetotalcore.com
-thewire.wynnresorts.com
-threescompany.com
-thymesnet.com
-ticketfly.com
-tickets.carowinds.com
-tickets.dorneypark.com
-tickets.valleyfair.com
-tickets.worldsoffun.com
-time.staffme.net
-timken.com
-tis.jp
-tku.ac.jp
-tlfw01.fhsg.ch
-tmgowa.pointsharp.net
-tmsnervecenter.com
-tohmatsu.co.jp
-token.vpn.mim.dk
-tokyo.jp
-toltestworld.com
-tondeusestore.be
-toppenishhospital.com
-topsytree.com
-totalcore.com
-toto-dream.com
-touchnet.com
-tracs.txstate.edu
-transmontaigne.com
-transportationtomorrow.on.ca
-travelerssaves.com
-travelmoneynow.com
-trebesin.cz
-trendsource.com
-tribune.com
-tritium.ch
-tryabcircle.com
-trycrunchlessabs.com
-tryeasyfeet.com
-tryeyemagic.com
-tryfastfit.com
-tryfreegrillglovetv.com
-trymytomatofactory.com
-tryslimtsnow.com
-trytotalpillow.com
-ts.k14.net
-tsn.dataresolution.net
-tss-j.co.jp
-tsuweb.pilgrimsoftware.com
-tu-chemnitz.de
-tu-dortmund.de
-tuev-nord.de
-tum.de
-tuwien.ac.at
-tvspy.com
-twinriversregional.com
-twyford.ealing.sch.uk
-twynhamschool.com
-tx.maxim-ic.com
-tylerisd.org
-u-tokyo.ac.jp
-ube-ind.co.jp
-ubi.pt
-ucar.edu
-uckac.edu
-ucr.edu
-ucsd.edu
-udsis.com
-uhk.cz
-uillinois.edu
-ultrapos.net
-umea.se
-umons.ac.be
-umpcshop.nl
-umsamofund.com
-umweltbundesamt.at
-umweltrat.de
-uncg.edu
-uni-hamburg.de
-unifymoffice.com
-unionvpn.union.edu
-unisanta.br
-unitron.no
-univ-lyon1.fr
-universalfloodpr.com
-unixnotes.wordpress.com
-uno.edu
-uottawa.ca
-update.com
-upenn.edu
-upgradeserver.coremobility.com
-us.connect.newegg.net
-us17action.com
-usc.edu
-user.atlas.sk
-userapp.waubonsee.edu
-vaderstad.com
-valtech.se
-vangent.com
-vasttrafik.se
-vbgov.com
-vcsportal.viasyscs.com
-veluwsescholengroepcvo.nl
-verint.com
-versicherungsvergleich.payback.de
-vervoerzcn.nl
-vetsfirstchoice.com
-vfwsturgis.org
-vi.macromill.com
-vibe.novell.com
-vic33.win.kennesaw.edu
-videocamerashop.be
-videocamerashop.nl
-villeesch.lu
-virtuall.nl
-vivaldi.ru
-vivid-trade.com
-vle.guilsborough.northants.sch.uk
-vle.marling.gloucs.sch.uk
-vle.saddleworthschool.org
-vocalocity.com
-voicerecordershop.be
-voicerecordershop.nl
-voogd.com
-vpdn.dlr.de
-vpn-03.houstonisd.org
-vpn-04.houstonisd.org
-vpn-gw1.unbc.ca
-vpn-indy.exacttarget.com
-vpn-stud-ssl.hogent.be
-vpn.agnesirwin.org
-vpn.ats.edu
-vpn.ausrad.com
-vpn.barry.edu
-vpn.bchydro.com
-vpn.cclswi.com
-vpn.claas.com
-vpn.coffey.com.au
-vpn.concur.com
-vpn.dearborn.pcgcampbell.com
-vpn.diebold.com
-vpn.doncaster.gov.uk
-vpn.douglasesd.k12.or.us
-vpn.fhi-berlin.mpg.de
-vpn.gribskov.dk
-vpn.hbstubbs.com
-vpn.hppartners.com
-vpn.interseco.nl
-vpn.iridium.com
-vpn.kleinandhoffman.com
-vpn.kmcnetwork.org
-vpn.l3stratis.com
-vpn.lan.kth.se
-vpn.mobilearmor.com
-vpn.msmc.la.edu
-vpn.nbeavers.com
-vpn.netprivateer.com
-vpn.pace.edu
-vpn.redbarchetta.com
-vpn.reliablesprinkler.com
-vpn.rz.tu-clausthal.de
-vpn.stb.eu
-vpn.tarumanagara.com
-vpn.tfh-wildau.de
-vpn.univ-lr.fr
-vpn.unizar.es
-vpn.utexas.edu
-vpn.uwhealth.org
-vpn01.us-support.com
-vpn1.sandyspringbank.com
-vpngate.tu-bs.de
-vpnssl.nwths.biz
-vpnuk.oup.com
-vr.is
-vserver.de
-vtc.edu.hk
-vtrade.vincomsc.com.vn
-wa.gov
-waffenamt.it
-wakeside.com
-walbeekgroep.com
-walmarthowwedoit.com
-walmartstores.com
-warwick.ac.uk
-wcvpn.wartburg.edu
-web-opas.osakaya.co.jp
-web-pl.daikin.co.jp
-web-vpn.hefr.ch
-web.storen.ch
-web.uc.atosorigin.com
-webaccess.pvhs.org
-webapp.meredith.com
-webbdaf.com
-webchat.unt.edu
-webdirect.jp
-webforensics.co.uk
-webgate.no
-webmail.5sqc.com
-webmail.action-inter.com
-webmail.ahs.ae
-webmail.akd.nl
-webmail.akl.whk.co.nz
-webmail.alexmann.com
-webmail.alturkigroup.net
-webmail.apotex.ca
-webmail.arthurterry.bham.sch.uk
-webmail.asb.dk
-webmail.attendshealthcare.com
-webmail.audencia.com
-webmail.awsg.at
-webmail.azmedien.ch
-webmail.bayamonpr.org
-webmail.bg.fnv.nl
-webmail.bggs.qld.edu.au
-webmail.bife.ie
-webmail.bravilor.com
-webmail.bridgercapital.com
-webmail.bwfc.co.uk
-webmail.c-e.com
-webmail.capacent.is
-webmail.carmelcollegesalland.nl
-webmail.cavanvec.ie
-webmail.cg68.fr
-webmail.corenet.se
-webmail.csaa.com
-webmail.dabs.com
-webmail.davenportdiocese.org
-webmail.deckers.com
-webmail.dwango.co.jp
-webmail.ecerdc.com.my
-webmail.ekero.se
-webmail.energimidt.dk
-webmail.engevix.com.br
-webmail.escortinc.com
-webmail.etch.com
-webmail.fdm.dk
-webmail.finning.co.uk
-webmail.firstam.net
-webmail.flydubai.com
-webmail.frederikshavn.dk
-webmail.gazprom-mt.com
-webmail.gmh.edu
-webmail.hanno.dk
-webmail.hostedoutlook.be
-webmail.howerter.org
-webmail.insight-onsite.us
-webmail.integrationsfonds.at
-webmail.interwetten.com
-webmail.intrinsec.com
-webmail.ipzs.it
-webmail.ivoclarvivadent.com
-webmail.javelindirect.com
-webmail.jmp.co.uk
-webmail.jungfrau.ch
-webmail.kentalis.nl
-webmail.keuda.fi
-webmail.komatsuforest.com
-webmail.ku.edu.tr
-webmail.lancashire.bm
-webmail.lappia.fi
-webmail.lett.dk
-webmail.levillage1.be
-webmail.levinglobal.com
-webmail.lolland.dk
-webmail.mahouse.gov
-webmail.malvik.kommune.no
-webmail.marketing-asiapac.com
-webmail.mcbdds.org
-webmail.mdc.wa.edu.au
-webmail.meca.se
-webmail.med.uni-muenchen.de
-webmail.mioc.hr
-webmail.mjncomputers.co.uk
-webmail.modal.com.br
-webmail.moh.gov.sa
-webmail.mondigroup.com
-webmail.monroecounty-fl.gov
-webmail.morphosys.com
-webmail.mr-daten.de
-webmail.mt.gov
-webmail.mutter.se
-webmail.myeasyoffice.nl
-webmail.netdesign.dk
-webmail.normik.dk
-webmail.odin-groep.nl
-webmail.oecd.org
-webmail.orbitone.se
-webmail.ordina.nl
-webmail.plenarygroup.com
-webmail.proag.com
-webmail.psd.pt
-webmail.pu-kumamoto.ac.jp
-webmail.qinvest.com
-webmail.rasmussen.edu
-webmail.realtors.org
-webmail.rietlanden.nl
-webmail.rijnijssel.nl
-webmail.rodenstock.com
-webmail.rollins.edu
-webmail.rta.ae
-webmail.rtg.at
-webmail.rtl.hr
-webmail.rtp.pt
-webmail.saintjohn.ca
-webmail.seha.ae
-webmail.semtribe.com
-webmail.shepleybulfinch.com
-webmail.sicl.co.uk
-webmail.skilled.com.au
-webmail.skogu.nl
-webmail.sotog.nl
-webmail.span.hr
-webmail.sprm.gov.my
-webmail.struttandparker.com
-webmail.stsmd.dk
-webmail.stura.uni-halle.de
-webmail.swafnet.com
-webmail.t-atrium.nl
-webmail.t-systems.dk
-webmail.taarnby.dk
-webmail.techcampus.org
-webmail.teknowlogic.com
-webmail.tisq.nl
-webmail.transat.com
-webmail.tribune.com
-webmail.tuev-nord.de
-webmail.tys.fi
-webmail.uatlantica.pt
-webmail.uc4.com
-webmail.univ-catholyon.fr
-webmail.unl.pt
-webmail.usek.edu.lb
-webmail.users.co.uk
-webmail.veghel.nl
-webmail.vennesla.kommune.no
-webmail.washsports.com
-webmail.windstream.net
-webmail.wuerth.at
-webmail0.gifu-net.ed.jp
-webmail1.finansforbundet.dk
-webmail1.go2uti.com
-webmaileu.elcoteq.com
-webmailwg.datacom.co.nz
-webportal.simacict.nl
-webportal2.cfisd.net
-webprod4.hc-sc.gc.ca
-webremote.grainger.com
-webvpn.aamc.org
-webvpn.au.aecom.com
-webvpn.dpsk12.org
-webvpn.egyptianlng.com
-webvpn.eso.org
-webvpn.evraz.com
-webvpn.globant.com
-webvpn.greywolfcapital.com
-webvpn.jccc.edu
-webvpn.lexmed.com
-webvpn.oceanspray.com
-webvpn.progress-energy.com
-webvpn.promon.com.br
-webvpn.sebh.org
-webvpn.usaa.com
-webvpn.vcu.edu
-webvpn.wesleyan.edu
-welltrix.com
-welly.sm
-west.skofirm.com
-wheelingil.gov
-wholesale.starfinancial.com
-widgetbox.com
-wizardfinance.net
-wm.valley.ne.jp
-wms01.wimaxforum.org
-wnp.waseda.jp
-woodiesdiy.com
-workhere.jetblue.com
-worldatwardvds.com
-worldwaronecolor.com
-worthington-portal.org
-ws.licenzji-vetturi.gov.mt
-wtoutlook.wellcome.ac.uk
-www-sys2.tax.state.oh.us
-www.accessingram.com
-www.aramex.net
-www.azimut.portail.soquij.qc.ca
-www.benefitsconnect.net
-www.buecher.de
-www.cashpoint.com
-www.centralr.com
-www.champions-online.com
-www.chineselovelinks.com
-www.coop-kobe.net
-www.costco.com.mx
-www.djmmusic.com
-www.docstoc.com
-www.docuware.com
-www.e-zoa.com
-www.easy-share.com
-www.echo.com
-www.edumail.vic.gov.au
-www.eduweb.vic.gov.au
-www.empresas.bancobcr.com
-www.expesite.com
-www.fucam.ac.be
-www.golfdo.com
-www.gomopa.net
-www.hangikredi.com
-www.hastingsessential.com
-www.homedepotrebates.com
-www.improvementscatalog.com
-www.istyle.com.tw
-www.jerusalem.muni.il
-www.krungsricashlink.com
-www.marshallsonline.com
-www.microline.hr
-www.miller.co.jp
-www.mochibot.com
-www.mochimedia.com
-www.mof.go.jp
-www.montimbrenligne.laposte.fr
-www.mp4all.nl
-www.mypoint.com
-www.ncatrak.org
-www.neways.com
-www.newaysonline.com
-www.nochex.com
-www.otpbank.hu
-www.pagport.jp
-www.picnik.com
-www.promptparts.com
-www.rotaban.ru
-www.rr.com
-www.safelinkwireless.com
-www.samstores.com
-www.smarttickets.com.au
-www.smartypig.com
-www.startrekonline.com
-www.store.limewire.com
-www.thailovelinks.com
-www.thecinema.in
-www.themls.com
-www.tjmaxx.com
-www.topfox.co.uk
-www.toranoana.jp
-www.tryabcircle.com
-www.voogd.com
-www.vpn.cmu.edu
-www.wiso.uni-hamburg.de
-www.yourwirelessrebatecenter.com
-www.zenfolio.com
-www.zoominfo.com
-www1.cat365.net
-www1.hop.ana.co.jp
-www2.hokepon.com
-www2.lcmcisd.org
-www2.proexam.org
-www2.tagmulimta.co.il
-www2.tel-aviv.gov.il
-www2.ticket-web-shochiku.com
-wwwssl.isd109.org
-wwwx.oaklandcc.edu
-wwy01.shiki.gr.jp
-wynbilling.wyndhamworldwide.com
-wza.nl
-xchg.int.t-mobile.at
-xfinityhomesecurity.com
-xmlic.payfuse.com
-xmlrpc4.mollom.com
-xnet.woodforest.com
-xtremecardioonline.com
-yahoo-vi.co.jp
-yakimaregional.com
-yaskawa.co.jp
-yayoi-kk.co.jp
-yes123.com.tw
-yodlee.com
-yourownshoppingcart.com
-yoyaku.city.funabashi.chiba.jp
-yoyaku.city.hachioji.tokyo.jp
-yoyaku.nasva.go.jp
-yoyaku.parksweb.net
-zain.com
-zenfolio.com
diff --git a/net/base/ssl_false_start_blacklist_process.cc b/net/base/ssl_false_start_blacklist_process.cc
deleted file mode 100644
index e1ff7d2..0000000
--- a/net/base/ssl_false_start_blacklist_process.cc
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This utility program exists to process the False Start blacklist file into
-// a static hash table so that it can be efficiently queried by Chrome.
-
-#include <algorithm>
-#include <cstdio>
-#include <set>
-#include <sstream>
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/file_util.h"
-#include "base/string_util.h"
-#include "net/base/ssl_false_start_blacklist.h"
-
-typedef std::vector<std::string> Hosts;
-
-// Parses |input| as a blacklist data file, and returns the set of hosts it
-// contains.
-Hosts ParseHosts(const std::string& input) {
- Hosts hosts;
- size_t line_start = 0;
- bool is_comment = false;
- bool non_whitespace_seen = false;
- for (size_t i = 0; i <= input.size(); ++i) {
- if (i == input.size() || input[i] == '\n') {
- if (!is_comment && non_whitespace_seen) {
- size_t len = i - line_start;
- if (i > 0 && input[i - 1] == '\r')
- len--;
- hosts.push_back(input.substr(line_start, len));
- }
- is_comment = false;
- non_whitespace_seen = false;
- line_start = i + 1;
- } else if (input[i] != ' ' && input[i] != '\t' && input[i] != '\r') {
- non_whitespace_seen = true;
- if (i == line_start && input[i] == '#')
- is_comment = true;
- }
- }
- VLOG(1) << "Have " << hosts.size() << " hosts after parse";
- return hosts;
-}
-
-// Returns |host| with any initial "www." and trailing dots removed. Partly
-// based on net::StripWWW().
-std::string StripWWWAndTrailingDots(const std::string& host) {
- const std::string www("www.");
- const size_t start = StartsWithASCII(host, www, true) ? www.length() : 0;
- const size_t end = host.find_last_not_of('.');
- return (end == std::string::npos) ?
- std::string() : host.substr(start, end - start + 1);
-}
-
-// Removes all duplicates from |hosts|.
-static void RemoveDuplicateEntries(std::vector<std::string>* hosts) {
- std::sort(hosts->begin(), hosts->end());
- hosts->erase(std::unique(hosts->begin(), hosts->end()), hosts->end());
- VLOG(1) << "Have " << hosts->size() << " hosts after removing duplicates";
-}
-
-// Returns the parent domain for |host|, or the empty string if the name is a
-// top-level domain.
-static std::string ParentDomain(const std::string& host) {
- const size_t first_dot = host.find('.');
- return (first_dot == std::string::npos) ?
- std::string() : host.substr(first_dot + 1);
-}
-
-// Predicate which returns true when a hostname has a parent domain in the set
-// of hosts provided at construction time.
-class ParentInSet : public std::unary_function<std::string, bool> {
- public:
- explicit ParentInSet(const std::set<std::string>& hosts) : hosts_(hosts) {}
-
- bool operator()(const std::string& host) const {
- for (std::string parent(ParentDomain(host)); !parent.empty();
- parent = ParentDomain(parent)) {
- if (hosts_.count(parent)) {
- VLOG(1) << "Removing " << host << " as redundant";
- return true;
- }
- }
- return false;
- }
-
- private:
- const std::set<std::string>& hosts_;
-};
-
-// Removes any hosts which are subdomains of other hosts. E.g.
-// "foo.example.com" would be removed if "example.com" were also included.
-static void RemoveRedundantEntries(Hosts* hosts) {
- std::set<std::string> hosts_set;
- for (Hosts::const_iterator i(hosts->begin()); i != hosts->end(); ++i)
- hosts_set.insert(*i);
- hosts->erase(std::remove_if(hosts->begin(), hosts->end(),
- ParentInSet(hosts_set)), hosts->end());
- VLOG(1) << "Have " << hosts->size() << " hosts after removing redundants";
-}
-
-// Returns true iff all |hosts| are less than 256 bytes long (not including the
-// terminating NUL) and contain two or more dot-separated components.
-static bool CheckLengths(const Hosts& hosts) {
- for (Hosts::const_iterator i(hosts.begin()); i != hosts.end(); ++i) {
- if (i->size() >= 256) {
- fprintf(stderr, "Entry '%s' is too large\n", i->c_str());
- return false;
- }
- if (net::SSLFalseStartBlacklist::LastTwoComponents(*i).empty()) {
- fprintf(stderr, "Entry '%s' contains too few labels\n", i->c_str());
- return false;
- }
- }
-
- return true;
-}
-
-// Returns the contents of the output file to be written.
-std::string GenerateOutput(const Hosts& hosts) {
- // Hash each host into its appropriate bucket.
- VLOG(1) << "Using " << net::SSLFalseStartBlacklist::kBuckets
- << " entry hash table";
- Hosts buckets[net::SSLFalseStartBlacklist::kBuckets];
- for (Hosts::const_iterator i(hosts.begin()); i != hosts.end(); ++i) {
- const uint32 hash = net::SSLFalseStartBlacklist::Hash(
- net::SSLFalseStartBlacklist::LastTwoComponents(*i));
- buckets[hash & (net::SSLFalseStartBlacklist::kBuckets - 1)].push_back(*i);
- }
-
- // Write header.
- std::ostringstream output;
- output << "// Copyright (c) 2011 The Chromium Authors. All rights reserved.\n"
- "// Use of this source code is governed by a BSD-style license that"
- " can be\n// found in the LICENSE file.\n\n// WARNING: This code is"
- " generated by ssl_false_start_blacklist_process.cc.\n// Do not "
- "edit.\n\n#include \"net/base/ssl_false_start_blacklist.h\"\n\n"
- "namespace net {\n\nconst uint32 "
- "SSLFalseStartBlacklist::kHashTable["
- << net::SSLFalseStartBlacklist::kBuckets << " + 1] = {\n 0,\n";
-
- // Construct data table, writing out the size as each bucket is appended.
- std::string table_data;
- size_t max_bucket_size = 0;
- for (size_t i = 0; i < net::SSLFalseStartBlacklist::kBuckets; i++) {
- max_bucket_size = std::max(max_bucket_size, buckets[i].size());
- for (Hosts::const_iterator j(buckets[i].begin()); j != buckets[i].end();
- ++j) {
- table_data.push_back(static_cast<char>(j->size()));
- table_data.append(*j);
- }
- output << " " << table_data.size() << ",\n";
- }
- output << "};\n\n";
- VLOG(1) << "Largest bucket has " << max_bucket_size << " entries";
-
- // Write data table, breaking lines after 72+ (2 indent, 70+ data) characters.
- output << "const char SSLFalseStartBlacklist::kHashData[] = {\n";
- for (size_t i = 0, line_length = 0; i < table_data.size(); i++) {
- if (line_length == 0)
- output << " ";
- std::ostringstream::pos_type current_length = output.tellp();
- output << static_cast<int>(table_data[i]) << ", ";
- line_length += output.tellp() - current_length;
- if (i == table_data.size() - 1) {
- output << "\n};\n";
- } else if (line_length >= 70) {
- output << "\n";
- line_length = 0;
- }
- }
- output << "\n} // namespace net\n";
- return output.str();
-}
-
-#if defined(OS_WIN)
-int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
-#elif defined(OS_POSIX)
-int main(int argc, char* argv[], char* envp[]) {
-#endif
- if (argc != 3) {
- fprintf(stderr, "Usage: %s <blacklist file> <output .c file>\n", argv[0]);
- return 1;
- }
-
- // Read input file.
- std::string input;
- if (!file_util::ReadFileToString(FilePath(argv[1]), &input)) {
- fprintf(stderr, "Failed to read input file '%s'\n", argv[1]);
- return 2;
- }
- Hosts hosts(ParseHosts(input));
-
- // Sanitize |hosts|.
- std::transform(hosts.begin(), hosts.end(), hosts.begin(),
- StripWWWAndTrailingDots);
- RemoveDuplicateEntries(&hosts);
- RemoveRedundantEntries(&hosts);
- if (!CheckLengths(hosts))
- return 3;
-
- // Write output file.
- const std::string output_str(GenerateOutput(hosts));
- if (file_util::WriteFile(FilePath(argv[2]), output_str.data(),
- output_str.size()) == static_cast<int>(output_str.size()))
- return 0;
- fprintf(stderr, "Failed to write output file '%s'\n", argv[2]);
- return 4;
-}
diff --git a/net/base/ssl_false_start_blacklist_unittest.cc b/net/base/ssl_false_start_blacklist_unittest.cc
deleted file mode 100644
index ea722967..0000000
--- a/net/base/ssl_false_start_blacklist_unittest.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/base/ssl_false_start_blacklist.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-
-TEST(SSLFalseStartBlacklistTest, LastTwoComponents) {
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("a.b.c.d"), "c.d");
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("a.b"), "a.b");
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("www.a.de"), "a.de");
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("www.www.a.de"), "a.de");
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("a.com."), "a.com");
- EXPECT_EQ(SSLFalseStartBlacklist::LastTwoComponents("a.com.."), "a.com");
-
- EXPECT_TRUE(SSLFalseStartBlacklist::LastTwoComponents("com").empty());
- EXPECT_TRUE(SSLFalseStartBlacklist::LastTwoComponents(".com").empty());
- EXPECT_TRUE(SSLFalseStartBlacklist::LastTwoComponents("").empty());
-}
-
-TEST(SSLFalseStartBlacklistTest, IsMember) {
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("example.com"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("www.example.com"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("a.b.example.com"));
- EXPECT_FALSE(SSLFalseStartBlacklist::IsMember("aexample.com"));
- EXPECT_FALSE(SSLFalseStartBlacklist::IsMember("com"));
-
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("www.toto-dream.com"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("billing.ntt-east.co.jp"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("thepayplace.com"));
-
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("nordea.se"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("nordea.com"));
- EXPECT_TRUE(SSLFalseStartBlacklist::IsMember("nordeanetbank.dk"));
-}
-
-} // namespace net
diff --git a/net/net.gyp b/net/net.gyp
index 43790d8..f4ab7b5 100644
--- a/net/net.gyp
+++ b/net/net.gyp
@@ -37,7 +37,6 @@
'../third_party/zlib/zlib.gyp:zlib',
'../v8/tools/gyp/v8.gyp:v8',
'net_resources',
- 'ssl_false_start_blacklist_process#host',
],
'sources': [
'android/network_library.cc',
@@ -239,8 +238,6 @@
'base/ssl_config_service.h',
'base/ssl_config_service_defaults.cc',
'base/ssl_config_service_defaults.h',
- 'base/ssl_false_start_blacklist.cc',
- 'base/ssl_false_start_blacklist.h',
'base/ssl_info.cc',
'base/ssl_info.h',
'base/static_cookie_policy.cc',
@@ -773,25 +770,6 @@
'export_dependent_settings': [
'../base/base.gyp:base',
],
- 'actions': [
- {
- 'action_name': 'ssl_false_start_blacklist',
- 'inputs': [
- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)ssl_false_start_blacklist_process<(EXECUTABLE_SUFFIX)',
- 'base/ssl_false_start_blacklist.txt',
- ],
- 'outputs': [
- '<(SHARED_INTERMEDIATE_DIR)/net/base/ssl_false_start_blacklist_data.cc',
- ],
- 'action':
- ['<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)ssl_false_start_blacklist_process<(EXECUTABLE_SUFFIX)',
- 'base/ssl_false_start_blacklist.txt',
- '<(SHARED_INTERMEDIATE_DIR)/net/base/ssl_false_start_blacklist_data.cc',
- ],
- 'message': 'Generating SSL False Start blacklist',
- 'process_outputs_as_sources': 1,
- },
- ],
'conditions': [
['chromeos==1', {
'sources!': [
@@ -1093,7 +1071,6 @@
'base/ssl_cipher_suite_names_unittest.cc',
'base/ssl_client_auth_cache_unittest.cc',
'base/ssl_config_service_unittest.cc',
- 'base/ssl_false_start_blacklist_unittest.cc',
'base/static_cookie_policy_unittest.cc',
'base/test_certificate_data.h',
'base/test_completion_callback_unittest.cc',
@@ -1718,29 +1695,6 @@
'tools/crl_set_dump/crl_set_dump.cc',
],
},
- {
- 'target_name': 'ssl_false_start_blacklist_process',
- 'type': 'executable',
- 'toolsets': ['host'],
- 'dependencies': [
- '../base/base.gyp:base',
- '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
- ],
- 'include_dirs': [
- '..',
- ],
- 'sources': [
- 'base/ssl_false_start_blacklist_process.cc',
- 'base/ssl_false_start_blacklist.h',
- ],
- 'conditions': [
- ['OS == "android" and host_os == "linux"', {
- 'ldflags': [
- '-ldl',
- ],
- }],
- ],
- },
],
'conditions': [
['os_posix == 1 and OS != "mac" and OS != "android"', {
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
index 86bcd18..5fd5f11 100644
--- a/net/socket/ssl_client_socket_nss.cc
+++ b/net/socket/ssl_client_socket_nss.cc
@@ -116,12 +116,6 @@
static const int kRecvBufferSize = 4096;
-// kCorkTimeoutMs is the number of milliseconds for which we'll wait for a
-// Write to an SSL socket which we're False Starting. Since corking stops the
-// Finished message from being sent, the server sees an incomplete handshake
-// and some will time out such sockets quite aggressively.
-static const int kCorkTimeoutMs = 200;
-
#if defined(OS_WIN)
// CERT_OCSP_RESPONSE_PROP_ID is only implemented on Vista+, but it can be
// set on Windows XP without error. There is some overhead from the server
@@ -437,7 +431,6 @@ SSLClientSocketNSS::SSLClientSocketNSS(ClientSocketHandle* transport_socket,
const SSLClientSocketContext& context)
: transport_send_busy_(false),
transport_recv_busy_(false),
- corked_(false),
transport_(transport_socket),
host_and_port_(host_and_port),
ssl_config_(ssl_config),
@@ -791,10 +784,6 @@ int SSLClientSocketNSS::Write(IOBuffer* buf, int buf_len,
user_write_buf_ = buf;
user_write_buf_len_ = buf_len;
- if (corked_) {
- corked_ = false;
- uncork_timer_.Reset();
- }
int rv = DoWriteLoop(OK);
if (rv == ERR_IO_PENDING) {
@@ -917,12 +906,9 @@ int SSLClientSocketNSS::InitializeSSLOptions() {
LogFailedNSSFunction(net_log_, "SSL_OptionSet", "SSL_ENABLE_DEFLATE");
#endif
- PRBool false_start_enabled =
- ssl_config_.false_start_enabled &&
- !SSLConfigService::IsKnownFalseStartIncompatibleServer(
- host_and_port_.host());
#ifdef SSL_ENABLE_FALSE_START
- rv = SSL_OptionSet(nss_fd_, SSL_ENABLE_FALSE_START, false_start_enabled);
+ rv = SSL_OptionSet(nss_fd_, SSL_ENABLE_FALSE_START,
+ ssl_config_.false_start_enabled);
if (rv != SECSuccess)
LogFailedNSSFunction(net_log_, "SSL_OptionSet", "SSL_ENABLE_FALSE_START");
#endif
@@ -949,7 +935,8 @@ int SSLClientSocketNSS::InitializeSSLOptions() {
}
#ifdef SSL_CBC_RANDOM_IV
- rv = SSL_OptionSet(nss_fd_, SSL_CBC_RANDOM_IV, false_start_enabled);
+ rv = SSL_OptionSet(nss_fd_, SSL_CBC_RANDOM_IV,
+ ssl_config_.false_start_enabled);
if (rv != SECSuccess)
LogFailedNSSFunction(net_log_, "SSL_OptionSet", "SSL_CBC_RANDOM_IV");
#endif
@@ -1965,14 +1952,6 @@ void SSLClientSocketNSS::SaveSSLHostInfo() {
ssl_host_info_->Persist();
}
-void SSLClientSocketNSS::UncorkAfterTimeout() {
- corked_ = false;
- int nsent;
- do {
- nsent = BufferSend();
- } while (nsent > 0);
-}
-
// Do as much network I/O as possible between the buffer and the
// transport socket. Return true if some I/O performed, false
// otherwise (error or ERR_IO_PENDING).
@@ -2009,9 +1988,6 @@ int SSLClientSocketNSS::BufferSend(void) {
memio_GetWriteParams(nss_bufs_, &buf1, &len1, &buf2, &len2);
const unsigned int len = len1 + len2;
- if (corked_ && len < kRecvBufferSize / 2)
- return 0;
-
int rv = 0;
if (len) {
scoped_refptr<IOBuffer> send_buffer(new IOBuffer(len));
@@ -2125,50 +2101,6 @@ SECStatus SSLClientSocketNSS::OwnAuthCertHandler(void* arg,
PRFileDesc* socket,
PRBool checksig,
PRBool is_server) {
-#ifdef SSL_ENABLE_FALSE_START
- // In the event that we are False Starting this connection, we wish to send
- // out the Finished message and first application data record in the same
- // packet. This prevents non-determinism when talking to False Start
- // intolerant servers which, otherwise, might see the two messages in
- // different reads or not, depending on network conditions.
- PRBool false_start = 0;
- SECStatus rv = SSL_OptionGet(socket, SSL_ENABLE_FALSE_START, &false_start);
- DCHECK_EQ(SECSuccess, rv);
-
- SSLClientSocketNSS* that = reinterpret_cast<SSLClientSocketNSS*>(arg);
- CERTCertificate* cert = SSL_PeerCertificate(that->nss_fd_);
- if (cert) {
- char* common_name = CERT_GetCommonName(&cert->issuer);
- if (common_name) {
- if (false_start && strcmp(common_name, "ESET_RootSslCert") == 0) {
- // ESET anti-virus is capable of intercepting HTTPS connections on
- // Windows. However, it is False Start intolerant and causes the
- // connections to hang forever. We detect ESET by the issuer of the
- // leaf certificate and set a flag to return a specific error, giving
- // the user instructions for reconfiguring ESET.
- that->eset_mitm_detected_ = true;
- }
- if (false_start &&
- strcmp(common_name, "ContentWatch Root Certificate Authority") == 0) {
- // This is NetNanny. NetNanny are updating their product so we
- // silently disable False Start for now.
- rv = SSL_OptionSet(socket, SSL_ENABLE_FALSE_START, PR_FALSE);
- DCHECK_EQ(SECSuccess, rv);
- false_start = 0;
- }
- PORT_Free(common_name);
- }
- CERT_DestroyCertificate(cert);
- }
-
- if (false_start && !that->handshake_callback_called_) {
- that->corked_ = true;
- that->uncork_timer_.Start(FROM_HERE,
- base::TimeDelta::FromMilliseconds(kCorkTimeoutMs),
- that, &SSLClientSocketNSS::UncorkAfterTimeout);
- }
-#endif
-
// Tell NSS to not verify the certificate.
return SECSuccess;
}
diff --git a/net/socket/ssl_client_socket_nss.h b/net/socket/ssl_client_socket_nss.h
index 0860276..b708504 100644
--- a/net/socket/ssl_client_socket_nss.h
+++ b/net/socket/ssl_client_socket_nss.h
@@ -147,7 +147,6 @@ class SSLClientSocketNSS : public SSLClientSocket {
int DoPayloadWrite();
void LogConnectionTypeMetrics() const;
void SaveSSLHostInfo();
- void UncorkAfterTimeout();
bool DoTransportIO();
int BufferSend(void);
@@ -211,12 +210,6 @@ class SSLClientSocketNSS : public SSLClientSocket {
bool transport_send_busy_;
bool transport_recv_busy_;
- // corked_ is true if we are currently suspending writes to the network. This
- // is named after the similar kernel flag, TCP_CORK.
- bool corked_;
- // uncork_timer_ is used to limit the amount of time that we'll delay the
- // Finished message while waiting for a Write.
- base::OneShotTimer<SSLClientSocketNSS> uncork_timer_;
scoped_refptr<IOBuffer> recv_buffer_;
scoped_ptr<ClientSocketHandle> transport_;
diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
index 3ee7886..c7ed20f 100644
--- a/net/socket/ssl_client_socket_openssl.cc
+++ b/net/socket/ssl_client_socket_openssl.cc
@@ -484,13 +484,6 @@ bool SSLClientSocketOpenSSL::Init() {
// Same as above, this time for the SSL mode.
SslSetClearMask mode;
-#if defined(SSL_MODE_HANDSHAKE_CUTTHROUGH)
- mode.ConfigureFlag(SSL_MODE_HANDSHAKE_CUTTHROUGH,
- ssl_config_.false_start_enabled &&
- !SSLConfigService::IsKnownFalseStartIncompatibleServer(
- host_and_port_.host()));
-#endif
-
#if defined(SSL_MODE_RELEASE_BUFFERS)
mode.ConfigureFlag(SSL_MODE_RELEASE_BUFFERS, true);
#endif
diff --git a/net/third_party/nss/README.chromium b/net/third_party/nss/README.chromium
index 6e2ca29..d7110f0 100644
--- a/net/third_party/nss/README.chromium
+++ b/net/third_party/nss/README.chromium
@@ -65,6 +65,9 @@ Patches:
https://bugzilla.mozilla.org/show_bug.cgi?id=681065
patches/dtls.patch
+ * Enable False Start only when the server supports NPN.
+ patches/falsestartnpn.patch
+
Apply the patches to NSS by running the patches/applypatches.sh script. Read
the comments at the top of patches/applypatches.sh for instructions.
diff --git a/net/third_party/nss/patches/applypatches.sh b/net/third_party/nss/patches/applypatches.sh
index dbb603e..766a0ca 100755
--- a/net/third_party/nss/patches/applypatches.sh
+++ b/net/third_party/nss/patches/applypatches.sh
@@ -34,3 +34,5 @@ patch -p6 < $patches_dir/restartclientauth.patch
patch -p6 < $patches_dir/encryptedclientcerts.patch
patch -p4 < $patches_dir/dtls.patch
+
+patch -p6 < $patches_dir/falsestartnpn.patch
diff --git a/net/third_party/nss/ssl/ssl3con.c b/net/third_party/nss/ssl/ssl3con.c
index e8a7f017..d0eb042 100644
--- a/net/third_party/nss/ssl/ssl3con.c
+++ b/net/third_party/nss/ssl/ssl3con.c
@@ -6086,6 +6086,7 @@ ssl3_CanFalseStart(sslSocket *ss) {
rv = ss->opt.enableFalseStart &&
!ss->sec.isServer &&
!ss->ssl3.hs.isResuming &&
+ ssl3_ExtensionNegotiated(ss, ssl_next_proto_nego_xtn) &&
ss->ssl3.cwSpec &&
ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10 &&
(ss->ssl3.hs.kea_def->exchKeyType == ssl_kea_rsa ||
diff --git a/net/third_party/nss/ssl/ssl3ext.c b/net/third_party/nss/ssl/ssl3ext.c
index 80c1f7f..4e043b8 100644
--- a/net/third_party/nss/ssl/ssl3ext.c
+++ b/net/third_party/nss/ssl/ssl3ext.c
@@ -567,6 +567,8 @@ ssl3_ServerHandleNextProtoNegoXtn(sslSocket * ss, PRUint16 ex_type, SECItem *dat
return SECFailure;
}
+ ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type;
+
return SECSuccess;
}
@@ -635,6 +637,8 @@ ssl3_ClientHandleNextProtoNegoXtn(sslSocket *ss, PRUint16 ex_type,
return SECFailure;
}
+ ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type;
+
SECITEM_FreeItem(&ss->ssl3.nextProto, PR_FALSE);
return SECITEM_CopyItem(NULL, &ss->ssl3.nextProto, &result);
}