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 3// found in the LICENSE file. 4 5#ifndef REMOTING_PROTOCOL_IT2ME_HOST_AUTHENTICATOR_FACTORY_H_ 6#define REMOTING_PROTOCOL_IT2ME_HOST_AUTHENTICATOR_FACTORY_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/compiler_specific.h" 12#include "base/memory/ref_counted.h" 13#include "base/memory/scoped_ptr.h" 14#include "remoting/protocol/authenticator.h" 15 16namespace remoting { 17 18class RsaKeyPair; 19 20namespace protocol { 21 22// It2MeHostAuthenticatorFactory implements AuthenticatorFactory and 23// understands both the V2 and legacy V1 authentication mechanisms. 24class It2MeHostAuthenticatorFactory : public AuthenticatorFactory { 25 public: 26 It2MeHostAuthenticatorFactory( 27 const std::string& local_cert, 28 scoped_refptr<RsaKeyPair> key_pair, 29 const std::string& shared_secret); 30 virtual ~It2MeHostAuthenticatorFactory(); 31 32 // AuthenticatorFactory interface. 33 virtual scoped_ptr<Authenticator> CreateAuthenticator( 34 const std::string& local_jid, 35 const std::string& remote_jid, 36 const buzz::XmlElement* first_message) OVERRIDE; 37 38 private: 39 std::string local_cert_; 40 scoped_refptr<RsaKeyPair> key_pair_; 41 std::string shared_secret_; 42 43 DISALLOW_COPY_AND_ASSIGN(It2MeHostAuthenticatorFactory); 44}; 45 46} // namespace protocol 47} // namespace remoting 48 49#endif // REMOTING_PROTOCOL_IT2ME_HOST_AUTHENTICATOR_FACTORY_H_ 50