// Copyright 2014 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 COMPONENTS_PROXIMITY_AUTH_SECURE_CONTEXT_H #define COMPONENTS_PROXIMITY_AUTH_SECURE_CONTEXT_H namespace proximity_auth { // An interface used to decode and encode messages. class SecureContext { public: // The protocol version used during authentication. enum ProtocolVersion { PROTOCOL_VERSION_THREE_ZERO, // 3.0 PROTOCOL_VERSION_THREE_ONE, // 3.1 }; virtual ~SecureContext() {} // Decodes the |encoded_message| and returns the result. virtual std::string Decode(const std::string& encoded_message) = 0; // Encodes the |message| and returns the result. virtual std::string Encode(const std::string& message) = 0; // Returns the message received from the remote device that authenticates it. // This message should have been received during the handshake that // establishes the secure channel. virtual std::string GetReceivedAuthMessage() const = 0; // Returns the protocol version that was used during authentication. virtual ProtocolVersion GetProtocolVersion() const = 0; }; } // namespace proximity_auth #endif // COMPONENTS_PROXIMITY_AUTH_SECURE_CONTEXT_H