SSLIOP_ClientCredentials.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  * @file SSLIOP_ClientCredentials.h
00006  *
00007  * $Id: SSLIOP_ClientCredentials.h 77188 2007-02-19 12:34:36Z johnnyw $
00008  *
00009  * @author Ossama Othman <ossama@dre.vanderbilt.edu>
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_SSLIOP_CLIENT_CREDENTIALS_H
00015 #define TAO_SSLIOP_CLIENT_CREDENTIALS_H
00016 
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "orbsvcs/SSLIOP/SSLIOP_Export.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "orbsvcs/SSLIOP/SSLIOP_Credentials.h"
00026 #include "orbsvcs/SSLIOP/SSLIOP_SSL.h"
00027 
00028 #include "orbsvcs/SecurityLevel3C.h"
00029 
00030 #include "tao/LocalObject.h"
00031 
00032 #if defined(_MSC_VER)
00033 #pragma warning(push)
00034 #pragma warning(disable:4250)
00035 #endif /* _MSC_VER */
00036 
00037 
00038 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00039 
00040 namespace TAO
00041 {
00042   namespace SSLIOP
00043   {
00044     /**
00045      * @class ClientCredentials
00046      *
00047      * @brief
00048      *
00049      *
00050      */
00051     class ClientCredentials
00052       : public virtual SecurityLevel3::ClientCredentials,
00053         public virtual SSLIOP_Credentials
00054     {
00055     public:
00056 
00057       /// Constructor
00058       ClientCredentials (::X509 * cert, ::EVP_PKEY * evp, ::SSL * ssl);
00059 
00060       /**
00061        * @name SecurityLevel3::Credentials Methods
00062        *
00063        * Methods required by the SecurityLevel3::Credentials
00064        * interface.
00065        */
00066       //@{
00067       virtual SecurityLevel3::CredentialsType creds_type ();
00068       //@}
00069 
00070       /**
00071        * @name SecurityLevel3::ClientCredentials Methods
00072        *
00073        * Methods required by the SecurityLevel3::ClientCredentials
00074        * interface.
00075        */
00076       //@{
00077       virtual char * context_id (void);
00078 
00079       virtual SecurityLevel3::Principal * client_principal ();
00080 
00081       virtual SecurityLevel3::StatementList * client_supporting_statements ();
00082 
00083       virtual SecurityLevel3::ResourceNameList * client_restricted_resources ();
00084 
00085       virtual SecurityLevel3::Principal * target_principal ();
00086 
00087       virtual SecurityLevel3::StatementList * target_supporting_statements ();
00088 
00089       virtual SecurityLevel3::ResourceNameList * target_restricted_resources ();
00090 
00091       virtual SecurityLevel3::OwnCredentials_ptr parent_credentials ();
00092 
00093       virtual CORBA::Boolean client_authentication (void);
00094 
00095       virtual CORBA::Boolean target_authentication (void);
00096 
00097       virtual CORBA::Boolean confidentiality (void);
00098 
00099       virtual CORBA::Boolean integrity (void);
00100       //@}
00101 
00102     protected:
00103 
00104       /// Destructor
00105       /**
00106        * Protected destructor to enforce proper memory management
00107        * through the reference counting mechanism.
00108        */
00109       ~ClientCredentials (void);
00110 
00111     private:
00112 
00113       /// Reference to the OpenSSL @c SSL data structure associated
00114       /// with the current security context (e.g. SSL connection).
00115       TAO::SSLIOP::SSL_var ssl_;
00116 
00117     };
00118 
00119   } // End SSLIOP namespace
00120 }  // End TAO namespace
00121 
00122 TAO_END_VERSIONED_NAMESPACE_DECL
00123 
00124 #if defined(_MSC_VER)
00125 #pragma warning(pop)
00126 #endif /* _MSC_VER */
00127 
00128 #include /**/ "ace/post.h"
00129 
00130 #endif  /* TAO_SSLIOP_CLIENT_CREDENTIALS_H */

Generated on Sun Jan 27 16:12:23 2008 for TAO_SSLIOP by doxygen 1.3.6