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

Unified Diff: remoting/protocol/fake_authenticator.cc

Issue 1277093006: Enable QUIC support in chromoting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@quic_adapters
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/fake_authenticator.h ('k') | remoting/protocol/fake_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/fake_authenticator.cc
diff --git a/remoting/protocol/fake_authenticator.cc b/remoting/protocol/fake_authenticator.cc
index b4b9493b75c05796e4d0f7af0dc6e974d3a5c859..1bd44c6c3dbb4f451ab76bfa72eef24e3b57f6ce 100644
--- a/remoting/protocol/fake_authenticator.cc
+++ b/remoting/protocol/fake_authenticator.cc
@@ -4,8 +4,10 @@
#include "remoting/protocol/fake_authenticator.h"
+#include "base/base64.h"
#include "base/callback_helpers.h"
#include "base/message_loop/message_loop.h"
+#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
@@ -88,8 +90,10 @@ void FakeChannelAuthenticator::CallDoneCallback() {
base::ResetAndReturn(&done_callback_).Run(result_, socket_.Pass());
}
-FakeAuthenticator::FakeAuthenticator(
- Type type, int round_trips, Action action, bool async)
+FakeAuthenticator::FakeAuthenticator(Type type,
+ int round_trips,
+ Action action,
+ bool async)
: type_(type),
round_trips_(round_trips),
action_(action),
@@ -146,6 +150,15 @@ void FakeAuthenticator::ProcessMessage(const buzz::XmlElement* message,
std::string id =
message->TextNamed(buzz::QName(kChromotingXmlNamespace, "id"));
EXPECT_EQ(id, base::IntToString(messages_));
+
+ // On the client receive the key in the last message.
+ if (type_ == CLIENT && messages_ == round_trips_ * 2 - 1) {
+ std::string key_base64 =
+ message->TextNamed(buzz::QName(kChromotingXmlNamespace, "key"));
+ EXPECT_TRUE(!key_base64.empty());
+ EXPECT_TRUE(base::Base64Decode(key_base64, &auth_key_));
+ }
+
++messages_;
resume_callback.Run();
}
@@ -160,10 +173,26 @@ scoped_ptr<buzz::XmlElement> FakeAuthenticator::GetNextMessage() {
id->AddText(base::IntToString(messages_));
result->AddElement(id);
+ // Add authentication key in the last message sent from host to client.
+ if (type_ == HOST && messages_ == round_trips_ * 2 - 1) {
+ auth_key_ = base::RandBytesAsString(16);
+ buzz::XmlElement* key = new buzz::XmlElement(
+ buzz::QName(kChromotingXmlNamespace, "key"));
+ std::string key_base64;
+ base::Base64Encode(auth_key_, &key_base64);
+ key->AddText(key_base64);
+ result->AddElement(key);
+ }
+
++messages_;
return result.Pass();
}
+const std::string& FakeAuthenticator::GetAuthKey() const {
+ EXPECT_EQ(ACCEPTED, state());
+ return auth_key_;
+}
+
scoped_ptr<ChannelAuthenticator>
FakeAuthenticator::CreateChannelAuthenticator() const {
EXPECT_EQ(ACCEPTED, state());
« no previous file with comments | « remoting/protocol/fake_authenticator.h ('k') | remoting/protocol/fake_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698