SSLIOP_ClientCredentials.cpp

Go to the documentation of this file.
00001 // SSLIOP_ClientCredentials.cpp,v 1.8 2006/03/14 06:14:35 jtc Exp
00002 
00003 #include "orbsvcs/SSLIOP/SSLIOP_ClientCredentials.h"
00004 #include "orbsvcs/SSLIOP/SSLIOP_OwnCredentials.h"
00005 
00006 
00007 ACE_RCSID (SSLIOP,
00008            SSLIOP_ClientCredentials,
00009            "SSLIOP_ClientCredentials.cpp,v 1.8 2006/03/14 06:14:35 jtc Exp")
00010 
00011 
00012 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00013 
00014 TAO::SSLIOP::ClientCredentials::ClientCredentials (
00015   X509 * cert,
00016   EVP_PKEY *evp,
00017   SSL * ssl)
00018   : SSLIOP_Credentials (cert, evp),
00019     ssl_ (TAO::SSLIOP::OpenSSL_traits< ::SSL >::_duplicate (ssl))
00020 {
00021 }
00022 
00023 TAO::SSLIOP::ClientCredentials::~ClientCredentials (void)
00024 {
00025 }
00026 
00027 SecurityLevel3::CredentialsType
00028 TAO::SSLIOP::ClientCredentials::creds_type (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00029   ACE_THROW_SPEC ((CORBA::SystemException))
00030 {
00031   return SecurityLevel3::CT_ClientCredentials;
00032 }
00033 
00034 char *
00035 TAO::SSLIOP::ClientCredentials::context_id (ACE_ENV_SINGLE_ARG_DECL)
00036   ACE_THROW_SPEC ((CORBA::SystemException))
00037 {
00038   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00039 }
00040 
00041 SecurityLevel3::Principal *
00042 TAO::SSLIOP::ClientCredentials::client_principal (ACE_ENV_SINGLE_ARG_DECL)
00043   ACE_THROW_SPEC ((CORBA::SystemException))
00044 {
00045   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00046 }
00047 
00048 SecurityLevel3::StatementList *
00049 TAO::SSLIOP::ClientCredentials::client_supporting_statements (
00050     ACE_ENV_SINGLE_ARG_DECL)
00051   ACE_THROW_SPEC ((CORBA::SystemException))
00052 {
00053   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00054 }
00055 
00056 SecurityLevel3::ResourceNameList *
00057 TAO::SSLIOP::ClientCredentials::client_restricted_resources (
00058     ACE_ENV_SINGLE_ARG_DECL)
00059   ACE_THROW_SPEC ((CORBA::SystemException))
00060 {
00061   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00062 }
00063 
00064 SecurityLevel3::Principal *
00065 TAO::SSLIOP::ClientCredentials::target_principal (ACE_ENV_SINGLE_ARG_DECL)
00066   ACE_THROW_SPEC ((CORBA::SystemException))
00067 {
00068   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00069 }
00070 
00071 SecurityLevel3::StatementList *
00072 TAO::SSLIOP::ClientCredentials::target_supporting_statements (
00073     ACE_ENV_SINGLE_ARG_DECL)
00074   ACE_THROW_SPEC ((CORBA::SystemException))
00075 {
00076   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00077 }
00078 
00079 SecurityLevel3::ResourceNameList *
00080 TAO::SSLIOP::ClientCredentials::target_restricted_resources (
00081     ACE_ENV_SINGLE_ARG_DECL)
00082   ACE_THROW_SPEC ((CORBA::SystemException))
00083 {
00084   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00085 }
00086 
00087 SecurityLevel3::OwnCredentials_ptr
00088 TAO::SSLIOP::ClientCredentials::parent_credentials (ACE_ENV_SINGLE_ARG_DECL)
00089   ACE_THROW_SPEC ((CORBA::SystemException))
00090 {
00091   SecurityLevel3::OwnCredentials_ptr creds =
00092     SecurityLevel3::OwnCredentials::_nil ();
00093 
00094   ACE_NEW_THROW_EX (creds,
00095                     TAO::SSLIOP::OwnCredentials (
00096                       ::SSL_get_certificate (this->ssl_.in ()),
00097                       ::SSL_get_privatekey (this->ssl_.in ())),
00098                     CORBA::NO_MEMORY ());
00099   ACE_CHECK_RETURN (creds);
00100 
00101   return creds;
00102 }
00103 
00104 CORBA::Boolean
00105 TAO::SSLIOP::ClientCredentials::client_authentication (
00106     ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00107   ACE_THROW_SPEC ((CORBA::SystemException))
00108 {
00109   // If the client presented no certificate (i.e. cert_.ptr() == 0),
00110   // the client was not authenticated.  Otherwise, verify the peer's
00111   // certificate.
00112 
00113   return
00114     this->x509_.in () != 0
00115     && SSL_get_verify_result (this->ssl_.in ()) == X509_V_OK;
00116 }
00117 
00118 CORBA::Boolean
00119 TAO::SSLIOP::ClientCredentials::target_authentication (ACE_ENV_SINGLE_ARG_DECL)
00120   ACE_THROW_SPEC ((CORBA::SystemException))
00121 {
00122   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), false);
00123 }
00124 
00125 CORBA::Boolean
00126 TAO::SSLIOP::ClientCredentials::confidentiality (ACE_ENV_SINGLE_ARG_DECL)
00127   ACE_THROW_SPEC ((CORBA::SystemException))
00128 {
00129   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), false);
00130 }
00131 
00132 CORBA::Boolean
00133 TAO::SSLIOP::ClientCredentials::integrity (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00134   ACE_THROW_SPEC ((CORBA::SystemException))
00135 {
00136   // TAO's SSLIOP pluggable transport always provides integrity.  Note
00137   // that if we 
00138 
00139   return true;
00140 }
00141 
00142 TAO_END_VERSIONED_NAMESPACE_DECL

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