| // Copyright 2015 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 "components/proximity_auth/fake_secure_context.h" | 
 |  | 
 | #include <stddef.h> | 
 |  | 
 | #include "base/strings/string_util.h" | 
 |  | 
 | namespace proximity_auth { | 
 |  | 
 | namespace { | 
 |  | 
 | const char kFakeEncodingSuffix[] = ", but encoded"; | 
 | const size_t kFakeEncodingSuffixLen = sizeof(kFakeEncodingSuffix) - 1; | 
 | const char kChannelBindingData[] = "channel binding data"; | 
 |  | 
 | }  // namespace | 
 |  | 
 | FakeSecureContext::FakeSecureContext() | 
 |     : protocol_version_(SecureContext::PROTOCOL_VERSION_THREE_ONE) {} | 
 |  | 
 | FakeSecureContext::~FakeSecureContext() {} | 
 |  | 
 | std::string FakeSecureContext::GetChannelBindingData() const { | 
 |   return kChannelBindingData; | 
 | } | 
 |  | 
 | SecureContext::ProtocolVersion FakeSecureContext::GetProtocolVersion() const { | 
 |   return protocol_version_; | 
 | } | 
 |  | 
 | void FakeSecureContext::Encode(const std::string& message, | 
 |                                const MessageCallback& callback) { | 
 |   callback.Run(message + kFakeEncodingSuffix); | 
 | } | 
 |  | 
 | void FakeSecureContext::Decode(const std::string& encoded_message, | 
 |                                const MessageCallback& callback) { | 
 |   if (!EndsWith(encoded_message, kFakeEncodingSuffix, | 
 |                 base::CompareCase::SENSITIVE)) { | 
 |     callback.Run(std::string()); | 
 |   } | 
 |  | 
 |   std::string decoded_message = encoded_message; | 
 |   decoded_message.erase(decoded_message.size() - kFakeEncodingSuffixLen); | 
 |   callback.Run(decoded_message); | 
 | } | 
 |  | 
 | }  // namespace proximity_auth |