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

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

Issue 9240033: Use scoped_ptr<>.Pass() to pass ownership in the remoting protocol code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 11 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/v1_authenticator.h" 5 #include "remoting/protocol/v1_authenticator.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "crypto/rsa_private_key.h" 9 #include "crypto/rsa_private_key.h"
10 #include "remoting/base/constants.h" 10 #include "remoting/base/constants.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 } 52 }
53 } 53 }
54 54
55 if (remote_cert_.empty()) { 55 if (remote_cert_.empty()) {
56 state_ = REJECTED; 56 state_ = REJECTED;
57 } else { 57 } else {
58 state_ = ACCEPTED; 58 state_ = ACCEPTED;
59 } 59 }
60 } 60 }
61 61
62 XmlElement* V1ClientAuthenticator::GetNextMessage() { 62 scoped_ptr<XmlElement> V1ClientAuthenticator::GetNextMessage() {
63 DCHECK_EQ(state_, MESSAGE_READY); 63 DCHECK_EQ(state_, MESSAGE_READY);
64 64
65 XmlElement* message = CreateEmptyAuthenticatorMessage(); 65 scoped_ptr<XmlElement> message = CreateEmptyAuthenticatorMessage();
66 std::string token = 66 std::string token =
67 protocol::GenerateSupportAuthToken(local_jid_, shared_secret_); 67 protocol::GenerateSupportAuthToken(local_jid_, shared_secret_);
68 XmlElement* auth_token_tag = new XmlElement( 68 XmlElement* auth_token_tag = new XmlElement(
69 QName(kChromotingXmlNamespace, kAuthTokenTag)); 69 QName(kChromotingXmlNamespace, kAuthTokenTag));
70 auth_token_tag->SetBodyText(token); 70 auth_token_tag->SetBodyText(token);
71 message->AddElement(auth_token_tag); 71 message->AddElement(auth_token_tag);
72 72
73 state_ = WAITING_MESSAGE; 73 state_ = WAITING_MESSAGE;
74 return message; 74 return message.Pass();
75 } 75 }
76 76
77 ChannelAuthenticator* 77 scoped_ptr<ChannelAuthenticator>
78 V1ClientAuthenticator::CreateChannelAuthenticator() const { 78 V1ClientAuthenticator::CreateChannelAuthenticator() const {
79 DCHECK_EQ(state_, ACCEPTED); 79 DCHECK_EQ(state_, ACCEPTED);
80 SslHmacChannelAuthenticator* result = 80 scoped_ptr<SslHmacChannelAuthenticator> result =
81 SslHmacChannelAuthenticator::CreateForClient( 81 SslHmacChannelAuthenticator::CreateForClient(
82 remote_cert_, shared_secret_); 82 remote_cert_, shared_secret_);
83 result->SetLegacyOneWayMode(SslHmacChannelAuthenticator::SEND_ONLY); 83 result->SetLegacyOneWayMode(SslHmacChannelAuthenticator::SEND_ONLY);
84 return result; 84 return scoped_ptr<ChannelAuthenticator>(result.release());
Wez 2012/01/19 03:18:17 result.Pass()?
Sergey Ulanov 2012/01/19 20:11:42 We need to upcast the pointer, and Pass() doesn't
Wez 2012/01/19 23:23:41 True, but if you didn't have to do the up-cast the
Sergey Ulanov 2012/01/19 23:50:26 I agree
85 }; 85 };
86 86
87 V1HostAuthenticator::V1HostAuthenticator( 87 V1HostAuthenticator::V1HostAuthenticator(
88 const std::string& local_cert, 88 const std::string& local_cert,
89 const crypto::RSAPrivateKey& local_private_key, 89 const crypto::RSAPrivateKey& local_private_key,
90 const std::string& shared_secret, 90 const std::string& shared_secret,
91 const std::string& remote_jid) 91 const std::string& remote_jid)
92 : local_cert_(local_cert), 92 : local_cert_(local_cert),
93 local_private_key_(local_private_key.Copy()), 93 local_private_key_(local_private_key.Copy()),
94 shared_secret_(shared_secret), 94 shared_secret_(shared_secret),
(...skipping 15 matching lines...) Expand all
110 message->TextNamed(buzz::QName(kChromotingXmlNamespace, kAuthTokenTag)); 110 message->TextNamed(buzz::QName(kChromotingXmlNamespace, kAuthTokenTag));
111 111
112 if (!protocol::VerifySupportAuthToken( 112 if (!protocol::VerifySupportAuthToken(
113 remote_jid_, shared_secret_, auth_token)) { 113 remote_jid_, shared_secret_, auth_token)) {
114 state_ = REJECTED; 114 state_ = REJECTED;
115 } else { 115 } else {
116 state_ = MESSAGE_READY; 116 state_ = MESSAGE_READY;
117 } 117 }
118 } 118 }
119 119
120 XmlElement* V1HostAuthenticator::GetNextMessage() { 120 scoped_ptr<XmlElement> V1HostAuthenticator::GetNextMessage() {
121 DCHECK_EQ(state_, MESSAGE_READY); 121 DCHECK_EQ(state_, MESSAGE_READY);
122 122
123 XmlElement* message = CreateEmptyAuthenticatorMessage(); 123 scoped_ptr<XmlElement> message = CreateEmptyAuthenticatorMessage();
124 buzz::XmlElement* certificate_tag = new XmlElement( 124 buzz::XmlElement* certificate_tag = new XmlElement(
125 buzz::QName(kChromotingXmlNamespace, kCertificateTag)); 125 buzz::QName(kChromotingXmlNamespace, kCertificateTag));
126 std::string base64_cert; 126 std::string base64_cert;
127 if (!base::Base64Encode(local_cert_, &base64_cert)) { 127 if (!base::Base64Encode(local_cert_, &base64_cert)) {
128 LOG(DFATAL) << "Cannot perform base64 encode on certificate"; 128 LOG(DFATAL) << "Cannot perform base64 encode on certificate";
129 } 129 }
130 certificate_tag->SetBodyText(base64_cert); 130 certificate_tag->SetBodyText(base64_cert);
131 message->AddElement(certificate_tag); 131 message->AddElement(certificate_tag);
132 132
133 state_ = ACCEPTED; 133 state_ = ACCEPTED;
134 return message; 134 return message.Pass();
135 } 135 }
136 136
137 ChannelAuthenticator* 137 scoped_ptr<ChannelAuthenticator>
138 V1HostAuthenticator::CreateChannelAuthenticator() const { 138 V1HostAuthenticator::CreateChannelAuthenticator() const {
139 DCHECK_EQ(state_, ACCEPTED); 139 DCHECK_EQ(state_, ACCEPTED);
140 SslHmacChannelAuthenticator* result = 140 scoped_ptr<SslHmacChannelAuthenticator> result =
141 SslHmacChannelAuthenticator::CreateForHost( 141 SslHmacChannelAuthenticator::CreateForHost(
142 local_cert_, local_private_key_.get(), shared_secret_); 142 local_cert_, local_private_key_.get(), shared_secret_);
143 result->SetLegacyOneWayMode(SslHmacChannelAuthenticator::RECEIVE_ONLY); 143 result->SetLegacyOneWayMode(SslHmacChannelAuthenticator::RECEIVE_ONLY);
144 return result; 144 return scoped_ptr<ChannelAuthenticator>(result.release());
Wez 2012/01/19 03:18:17 Ditto.
Sergey Ulanov 2012/01/19 20:11:42 same here.
145 }; 145 };
146 146
147 } // namespace remoting 147 } // namespace remoting
148 } // namespace protocol 148 } // namespace protocol
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698