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

Side by Side Diff: remoting/protocol/me2me_host_authenticator_factory.cc

Issue 10453064: Remove V1 authenticators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "remoting/protocol/me2me_host_authenticator_factory.h" 5 #include "remoting/protocol/me2me_host_authenticator_factory.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "crypto/rsa_private_key.h" 9 #include "crypto/rsa_private_key.h"
10 #include "remoting/protocol/channel_authenticator.h" 10 #include "remoting/protocol/channel_authenticator.h"
11 #include "remoting/protocol/negotiating_authenticator.h" 11 #include "remoting/protocol/negotiating_authenticator.h"
12 #include "remoting/protocol/v1_authenticator.h"
13 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h" 12 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h"
14 13
15 namespace remoting { 14 namespace remoting {
16 namespace protocol { 15 namespace protocol {
17 16
18 namespace { 17 namespace {
19 18
20 // Authenticator that accepts one message and rejects connection after that. 19 // Authenticator that accepts one message and rejects connection after that.
21 class RejectingAuthenticator : public Authenticator { 20 class RejectingAuthenticator : public Authenticator {
22 public: 21 public:
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 // Verify that the client's jid is an ASCII string, and then check 82 // Verify that the client's jid is an ASCII string, and then check
84 // that the client has the same bare jid as the host, i.e. client's 83 // that the client has the same bare jid as the host, i.e. client's
85 // full JID starts with host's bare jid. Comparison is case 84 // full JID starts with host's bare jid. Comparison is case
86 // insensitive. 85 // insensitive.
87 if (!IsStringASCII(remote_jid) || 86 if (!IsStringASCII(remote_jid) ||
88 !StartsWithASCII(remote_jid, local_jid.substr(0, slash_pos + 1), false)) { 87 !StartsWithASCII(remote_jid, local_jid.substr(0, slash_pos + 1), false)) {
89 LOG(ERROR) << "Rejecting incoming connection from " << remote_jid; 88 LOG(ERROR) << "Rejecting incoming connection from " << remote_jid;
90 return scoped_ptr<Authenticator>(new RejectingAuthenticator()); 89 return scoped_ptr<Authenticator>(new RejectingAuthenticator());
91 } 90 }
92 91
93 if (shared_secret_hash_.hash_function == AuthenticationMethod::NONE &&
94 shared_secret_hash_.value.empty()) {
95 // PIN isn't set. Enable V1 authentication.
96 if (!NegotiatingAuthenticator::IsNegotiableMessage(first_message)) {
97 return scoped_ptr<Authenticator>(
98 new V1HostAuthenticator(local_cert_, *local_private_key_,
99 "", remote_jid));
100 }
101 }
102
103 return NegotiatingAuthenticator::CreateForHost( 92 return NegotiatingAuthenticator::CreateForHost(
104 local_cert_, *local_private_key_, shared_secret_hash_.value, 93 local_cert_, *local_private_key_, shared_secret_hash_.value,
105 shared_secret_hash_.hash_function); 94 shared_secret_hash_.hash_function);
106 } 95 }
107 96
108 } // namespace protocol 97 } // namespace protocol
109 } // namespace remoting 98 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698