SSLIOP_ClientCredentials.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  * @file SSLIOP_ClientCredentials.h
00006  *
00007  * SSLIOP_ClientCredentials.h,v 1.7 2005/11/16 07:53:24 ossama Exp
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,
00059                          ::EVP_PKEY * evp,
00060                          ::SSL * ssl);
00061 
00062       /**
00063        * @name SecurityLevel3::Credentials Methods
00064        *
00065        * Methods required by the SecurityLevel3::Credentials
00066        * interface.
00067        */
00068       //@{
00069       virtual SecurityLevel3::CredentialsType creds_type (
00070           ACE_ENV_SINGLE_ARG_DECL)
00071         ACE_THROW_SPEC ((CORBA::SystemException));
00072       //@}
00073 
00074       /**
00075        * @name SecurityLevel3::ClientCredentials Methods
00076        *
00077        * Methods required by the SecurityLevel3::ClientCredentials
00078        * interface.
00079        */
00080       //@{
00081       virtual char * context_id (ACE_ENV_SINGLE_ARG_DECL)
00082         ACE_THROW_SPEC ((CORBA::SystemException));
00083 
00084       virtual SecurityLevel3::Principal * client_principal (
00085           ACE_ENV_SINGLE_ARG_DECL)
00086         ACE_THROW_SPEC ((CORBA::SystemException));
00087 
00088       virtual SecurityLevel3::StatementList * client_supporting_statements (
00089           ACE_ENV_SINGLE_ARG_DECL)
00090         ACE_THROW_SPEC ((CORBA::SystemException));
00091 
00092       virtual SecurityLevel3::ResourceNameList * client_restricted_resources (
00093           ACE_ENV_SINGLE_ARG_DECL)
00094         ACE_THROW_SPEC ((CORBA::SystemException));
00095 
00096       virtual SecurityLevel3::Principal * target_principal (
00097           ACE_ENV_SINGLE_ARG_DECL)
00098         ACE_THROW_SPEC ((CORBA::SystemException));
00099 
00100       virtual SecurityLevel3::StatementList * target_supporting_statements (
00101           ACE_ENV_SINGLE_ARG_DECL)
00102         ACE_THROW_SPEC ((CORBA::SystemException));
00103 
00104       virtual SecurityLevel3::ResourceNameList * target_restricted_resources (
00105           ACE_ENV_SINGLE_ARG_DECL)
00106         ACE_THROW_SPEC ((CORBA::SystemException));
00107 
00108       virtual SecurityLevel3::OwnCredentials_ptr parent_credentials (
00109           ACE_ENV_SINGLE_ARG_DECL)
00110         ACE_THROW_SPEC ((CORBA::SystemException));
00111 
00112       virtual CORBA::Boolean client_authentication (ACE_ENV_SINGLE_ARG_DECL)
00113         ACE_THROW_SPEC ((CORBA::SystemException));
00114 
00115       virtual CORBA::Boolean target_authentication (ACE_ENV_SINGLE_ARG_DECL)
00116         ACE_THROW_SPEC ((CORBA::SystemException));
00117 
00118       virtual CORBA::Boolean confidentiality (ACE_ENV_SINGLE_ARG_DECL)
00119         ACE_THROW_SPEC ((CORBA::SystemException));
00120 
00121       virtual CORBA::Boolean integrity (ACE_ENV_SINGLE_ARG_DECL)
00122         ACE_THROW_SPEC ((CORBA::SystemException));
00123       //@}
00124 
00125     protected:
00126 
00127       /// Destructor
00128       /**
00129        * Protected destructor to enforce proper memory management
00130        * through the reference counting mechanism.
00131        */
00132       ~ClientCredentials (void);
00133 
00134     private:
00135 
00136       /// Reference to the OpenSSL @c SSL data structure associated
00137       /// with the current security context (e.g. SSL connection).
00138       TAO::SSLIOP::SSL_var ssl_;
00139 
00140     };
00141 
00142   } // End SSLIOP namespace
00143 }  // End TAO namespace
00144 
00145 TAO_END_VERSIONED_NAMESPACE_DECL
00146 
00147 #if defined(_MSC_VER)
00148 #pragma warning(pop)
00149 #endif /* _MSC_VER */
00150 
00151 #include /**/ "ace/post.h"
00152 
00153 #endif  /* TAO_SSLIOP_CLIENT_CREDENTIALS_H */

Generated on Thu Nov 9 13:54:13 2006 for TAO_SSLIOP by doxygen 1.3.6