Index: remoting/protocol/negotiating_host_authenticator.h |
diff --git a/remoting/protocol/negotiating_host_authenticator.h b/remoting/protocol/negotiating_host_authenticator.h |
index 4ff53f6abdd4f99108f67cd6fe5cb1fafd0121c8..588fee2bf0e390bdb640bfb801cd15337a9712d3 100644 |
--- a/remoting/protocol/negotiating_host_authenticator.h |
+++ b/remoting/protocol/negotiating_host_authenticator.h |
@@ -15,6 +15,7 @@ |
#include "remoting/protocol/authentication_method.h" |
#include "remoting/protocol/authenticator.h" |
#include "remoting/protocol/negotiating_authenticator_base.h" |
+#include "remoting/protocol/third_party_host_authenticator.h" |
namespace remoting { |
@@ -26,14 +27,20 @@ namespace protocol { |
// See comments in negotiating_authenticator_base.h for a general explanation. |
class NegotiatingHostAuthenticator : public NegotiatingAuthenticatorBase { |
public: |
+ virtual ~NegotiatingHostAuthenticator(); |
+ |
// Creates a host authenticator, using a fixed shared secret/PIN hash. |
- NegotiatingHostAuthenticator( |
+ static scoped_ptr<Authenticator> CreateWithSharedSecret( |
const std::string& local_cert, |
scoped_refptr<RsaKeyPair> key_pair, |
const std::string& shared_secret_hash, |
AuthenticationMethod::HashFunction hash_function); |
- virtual ~NegotiatingHostAuthenticator(); |
+ // Creates a host authenticator, using third party authentication. |
+ static scoped_ptr<Authenticator> CreateWithThirdPartyAuth( |
+ const std::string& local_cert, |
+ scoped_refptr<RsaKeyPair> key_pair, |
+ scoped_ptr<ThirdPartyHostAuthenticator::TokenValidator> token_validator); |
// Overriden from Authenticator. |
virtual void ProcessMessage(const buzz::XmlElement* message, |
@@ -41,6 +48,10 @@ class NegotiatingHostAuthenticator : public NegotiatingAuthenticatorBase { |
virtual scoped_ptr<buzz::XmlElement> GetNextMessage() OVERRIDE; |
private: |
+ NegotiatingHostAuthenticator( |
+ const std::string& local_cert, |
+ scoped_refptr<RsaKeyPair> key_pair); |
+ |
// (Asynchronously) creates an authenticator, and stores it in |
// |current_authenticator_|. Authenticators that can be started in either |
// state will be created in |preferred_initial_state|. |
@@ -50,8 +61,13 @@ class NegotiatingHostAuthenticator : public NegotiatingAuthenticatorBase { |
std::string local_cert_; |
scoped_refptr<RsaKeyPair> local_key_pair_; |
+ |
+ // Used only for shared secret host authenticators. |
std::string shared_secret_hash_; |
+ // Used only for third party host authenticators. |
+ scoped_ptr<ThirdPartyHostAuthenticator::TokenValidator> token_validator_; |
+ |
DISALLOW_COPY_AND_ASSIGN(NegotiatingHostAuthenticator); |
}; |