XrdSecProtocolssl Class Reference

#include <XrdSecProtocolssl.hh>

Inheritance diagram for XrdSecProtocolssl:

XrdSecTLayer XrdSecProtocol List of all members.

Public Member Functions

 XrdSecProtocolssl (const char *hostname, const struct sockaddr *ipaddr)
virtual void secClient (int theFD, XrdOucErrInfo *einfo)
virtual void secServer (int theFD, XrdOucErrInfo *einfo=0)
virtual void Delete ()
 ~XrdSecProtocolssl ()

Static Public Member Functions

static int dummy (const char *key, XrdSecProtocolssl *ssl, void *Arg)
static int GenerateSession (const SSL *ssl, unsigned char *id, unsigned int *id_len)
static int NewSession (SSL *ssl, SSL_SESSION *pNew)
static int GetSession (SSL *ssl, SSL_SESSION *pNew)
static void ReloadGridMapFile ()
static void ReloadVomsMapFile ()
static bool VomsMapGroups (const char *groups, XrdOucString &allgroups, XrdOucString &defaultgroup)
static void GetEnvironment ()
static int Fatal (XrdOucErrInfo *erp, const char *msg, int rc)

Public Attributes

int sessionfd
X509 * client_cert
X509 * server_cert
XrdOucString host
char proxyBuff [16384]
SSL_CTX * clientctx
XrdSysMutex SSLMutex
bool terminate
sockaddr hostaddr
char * credBuff
int Step
int sd
int listen_sd
sockaddr_in sa_serv
sockaddr_in sa_cli
SSL * ssl

Static Public Attributes

static char * SessionIdContext
static char * sslcadir
static char * sslvomsdir
static char * sslserverkeyfile
static char * sslkeyfile
static char * sslcertfile
static char * sslproxyexportdir
static bool sslproxyexportplain
static char sslserverexportpassword [EXPORTKEYSTRENGTH+1]
static int threadsinuse
static char * gridmapfile
static char * vomsmapfile
static bool mapuser
static bool mapnobody
static bool mapgroup
static bool mapcerncertificates
static int debug
static time_t sslsessionlifetime
static int sslselecttimeout
static int sslsessioncachesize
static char * procdir
static XrdSecProtocolsslProcproc
static int errortimeout
static int errorverify
static int errorqueue
static int erroraccept
static int errorabort
static int errorread
static int forwardedproxies
static bool isServer
static bool forwardProxy
static bool allowSessions
static X509_STORE * store
static X509_LOOKUP * lookup
static int verifydepth
static int verifyindex
static XrdOucHash< XrdOucStringgridmapstore
static XrdOucHash< XrdOucStringvomsmapstore
static XrdOucHash< XrdOucStringstringstore
static XrdSysMutex StoreMutex
static XrdSysMutex VomsMapMutex
static XrdSysMutex GridMapMutex
static XrdSysMutexCryptoMutexPool [PROTOCOLSSL_MAX_CRYPTO_MUTEX]
static XrdSysMutex ThreadsInUseMutex
static XrdSysMutex ErrorMutex
static XrdSysLogger Logger
static XrdSysError ssleDest
static time_t storeLoadTime
static SSL_CTX * ctx

Friends

class XrdSecProtocolDummy

Classes

struct  sslverify_t

Detailed Description

Definition at line 123 of file XrdSecProtocolssl.hh.


Constructor & Destructor Documentation

XrdSecProtocolssl::XrdSecProtocolssl ( const char *  hostname,
const struct sockaddr *  ipaddr 
) [inline]

Definition at line 128 of file XrdSecProtocolssl.hh.

References client_cert, clientctx, credBuff, XrdSecEntity::endorsements, XrdSecProtocol::Entity, XrdNetDNS::getHostName(), XrdSecEntity::grps, XrdSecEntity::host, host, XrdSecEntity::name, XrdSecEntity::prot, proxyBuff, server_cert, ssl, and terminate.

XrdSecProtocolssl::~XrdSecProtocolssl (  )  [inline]

Definition at line 262 of file XrdSecProtocolssl.hh.


Member Function Documentation

void XrdSecProtocolssl::secClient ( int  theFD,
XrdOucErrInfo einfo 
) [virtual]

Implements XrdSecTLayer.

Definition at line 296 of file XrdSecProtocolssl.cc.

References allowSessions, buf, XrdOucString::c_str(), clientctx, close, DEBUG, EPNAME, error, erroraccept, ErrorMutex, errorread, errortimeout, ETIMEDOUT, F_GETFL, F_SETFL, Fatal(), fclose(), fcntl(), flags, fopen, forwardProxy, fp, fprintf(), free(), getenv(), GetEnvironment(), grst_cadir, GRST_callback_SSLVerify_wrapper(), grst_depth, GRST_get_voms_roles_and_free(), GRST_print_ssl_creds(), GRST_verify_cert_wrapper(), grst_vomsdir, XrdSecsslSessionLock::HardLock(), XrdSecsslSessionLock::HardUnLock(), host, i, int, l, l2n, XrdSysMutex::Lock(), NULL, O_NONBLOCK, ok, open, p, proxyBuff, read, S_IRUSR, S_IWUSR, secprotocolssl_pem_cb(), server_cert, XrdSecsslSessionLock::SoftLock(), XrdSecsslSessionLock::SoftUnLock(), sprintf(), ssl, ssl_continue(), ssl_select(), sslcadir, sslcertfile, sslkeyfile, SSLMutex, sslproxyexportplain, sslselecttimeout, sslserverexportpassword, sslvomsdir, stat, str, TRACE, XrdSysMutex::UnLock(), and verifydepth.

Referenced by main().

void XrdSecProtocolssl::secServer ( int  theFD,
XrdOucErrInfo einfo = 0 
) [virtual]

Implements XrdSecTLayer.

Definition at line 720 of file XrdSecProtocolssl.cc.

References XrdOucString::assign(), XrdOucString::beginswith(), XrdOucString::c_str(), client_cert, close, ctx, debug, DEBUG, ECONNABORTED, XrdSecEntity::endorsements, XrdSecProtocol::Entity, EPNAME, XrdOucString::erase(), XrdOucString::erasefromstart(), error, errorabort, erroraccept, ROOT::ErrorInfo(), ErrorMutex, errorqueue, errorread, errortimeout, errorverify, ETIMEDOUT, EXPORTKEYSTRENGTH, F_GETFL, F_SETFL, Fatal(), fclose(), fcntl(), XrdOucHash< T >::Find(), XrdOucString::find(), flags, fopen, forwardedproxies, fprintf(), free(), gettimeofday(), group::gr_name, GridMapMutex, gridmapstore, XrdSecEntity::grps, GRST_free_chain(), GRST_get_voms_roles_and_free(), GRST_print_ssl_creds(), XrdSecProtocolsslProc::Handle(), i, int, XrdOucString::length(), XrdSysMutex::Lock(), mapcerncertificates, mapgroup, mapnobody, mapuser, XrdSecEntity::name, NULL, O_NONBLOCK, open, proc, XrdSecEntity::prot, proxyBuff, pwd(), ReloadGridMapFile(), rename, XrdOucString::replace(), XrdSecEntity::role, S_IRUSR, S_IWUSR, sprintf(), ssl, ssl_continue(), ssl_select(), SSL_X509_STORE_create(), sslcadir, SSLMutex, sslproxyexportdir, sslproxyexportplain, sslselecttimeout, sslserverexportpassword, sslsessioncachesize, store, storeLoadTime, StoreMutex, str, STR_NPOS, terminate, threadsinuse, TRACE, tz, unlink, XrdSysMutex::UnLock(), VomsMapGroups(), XrdSecProtocolsslProcFile::Write(), and write.

Referenced by main().

static int XrdSecProtocolssl::dummy ( const char *  key,
XrdSecProtocolssl ssl,
void *  Arg 
) [inline, static]

Definition at line 152 of file XrdSecProtocolssl.hh.

virtual void XrdSecProtocolssl::Delete ( void   )  [inline, virtual]

Implements XrdSecTLayer.

Definition at line 155 of file XrdSecProtocolssl.hh.

References client_cert, credBuff, XrdSecProtocol::Entity, free(), XrdSecEntity::grps, XrdSecEntity::host, XrdSysThread::Join(), XrdSysMutex::Lock(), XrdSecEntity::name, NULL, XrdSecEntity::role, XrdSecTLayer::secTid, server_cert, ssl, SSLMutex, terminate, and XrdSysMutex::UnLock().

int XrdSecProtocolssl::GenerateSession ( const SSL *  ssl,
unsigned char *  id,
unsigned int *  id_len 
) [static]

Definition at line 1256 of file XrdSecProtocolssl.cc.

References EPNAME, MAX_SESSION_ID_ATTEMPTS, and TRACE.

Referenced by XrdSecProtocolsslInit().

int XrdSecProtocolssl::NewSession ( SSL *  ssl,
SSL_SESSION *  pNew 
) [static]

Definition at line 1279 of file XrdSecProtocolssl.cc.

References DEBUG, EPNAME, i, int, sprintf(), sslsessionlifetime, and TRACE.

Referenced by XrdSecProtocolsslInit().

static int XrdSecProtocolssl::GetSession ( SSL *  ssl,
SSL_SESSION *  pNew 
) [static]

void XrdSecProtocolssl::ReloadGridMapFile (  )  [static]

Definition at line 1294 of file XrdSecProtocolssl.cc.

References XrdOucHash< T >::Add(), XrdOucString::c_str(), EPNAME, XrdOucString::erase(), fclose(), XrdOucHash< T >::Find(), XrdOucString::find(), fopen, gridmapfile, GridMapMutex, gridmapstore, XrdSysMutex::Lock(), NULL, XrdOucHash< T >::Purge(), XrdOucString::replace(), stat, TRACE, and XrdSysMutex::UnLock().

Referenced by secServer().

void XrdSecProtocolssl::ReloadVomsMapFile (  )  [static]

Definition at line 1352 of file XrdSecProtocolssl.cc.

References XrdOucHash< T >::Add(), XrdOucString::c_str(), EPNAME, fclose(), XrdOucHash< T >::Find(), fopen, XrdSysMutex::Lock(), NULL, XrdOucHash< T >::Purge(), XrdOucString::replace(), stat, TRACE, XrdSysMutex::UnLock(), vomsmapfile, VomsMapMutex, and vomsmapstore.

Referenced by VomsMapGroups().

bool XrdSecProtocolssl::VomsMapGroups ( const char *  groups,
XrdOucString allgroups,
XrdOucString defaultgroup 
) [static]

Definition at line 1405 of file XrdSecProtocolssl.cc.

References XrdOucString::c_str(), EPNAME, XrdOucString::erase(), TMVA::kNN::Find(), ReloadVomsMapFile(), XrdOucString::replace(), XrdOucString::rfind(), STR_NPOS, TRACE, and vomsmapstore.

Referenced by secServer().

void XrdSecProtocolssl::GetEnvironment (  )  [static]

Definition at line 104 of file XrdSecProtocolssl.cc.

References allowSessions, debug, EPNAME, forwardProxy, free(), getenv(), sprintf(), sslcadir, sslcertfile, sslkeyfile, sslproxyexportdir, sslselecttimeout, sslvomsdir, TRACE, and verifydepth.

Referenced by secClient(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::Fatal ( XrdOucErrInfo erp,
const char *  msg,
int  rc 
) [static]

Definition at line 219 of file XrdSecProtocolssl.cc.

References errorabort, erroraccept, ROOT::ErrorInfo(), errorqueue, errorread, errortimeout, errorverify, XrdSecProtocolsslProc::Handle(), i, k, proc, XrdOucErrInfo::setErrInfo(), sprintf(), and XrdSecProtocolsslProcFile::Write().

Referenced by secClient(), and secServer().


Friends And Related Function Documentation

friend class XrdSecProtocolDummy [friend]

Definition at line 126 of file XrdSecProtocolssl.hh.


Member Data Documentation

char * XrdSecProtocolssl::SessionIdContext [static]

Definition at line 186 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslcadir [static]

Definition at line 187 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), secServer(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslvomsdir [static]

Definition at line 188 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslserverkeyfile [static]

Definition at line 189 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslkeyfile [static]

Definition at line 190 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslcertfile [static]

Definition at line 191 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::sslproxyexportdir [static]

Definition at line 192 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secServer(), and XrdSecProtocolsslInit().

bool XrdSecProtocolssl::sslproxyexportplain [static]

Definition at line 193 of file XrdSecProtocolssl.hh.

Referenced by secClient(), secServer(), and XrdSecProtocolsslInit().

char XrdSecProtocolssl::sslserverexportpassword [static]

Definition at line 194 of file XrdSecProtocolssl.hh.

Referenced by secClient(), secprotocolssl_pem_cb(), secServer(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::threadsinuse [static]

Definition at line 195 of file XrdSecProtocolssl.hh.

Referenced by secServer(), XrdSecsslThreadInUse::XrdSecsslThreadInUse(), and XrdSecsslThreadInUse::~XrdSecsslThreadInUse().

char * XrdSecProtocolssl::gridmapfile [static]

Definition at line 196 of file XrdSecProtocolssl.hh.

Referenced by ReloadGridMapFile(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::vomsmapfile [static]

Definition at line 197 of file XrdSecProtocolssl.hh.

Referenced by ReloadVomsMapFile(), and XrdSecProtocolsslInit().

bool XrdSecProtocolssl::mapuser [static]

Definition at line 198 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

bool XrdSecProtocolssl::mapnobody [static]

Definition at line 199 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

bool XrdSecProtocolssl::mapgroup [static]

Definition at line 200 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

bool XrdSecProtocolssl::mapcerncertificates [static]

Definition at line 201 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::debug [static]

Definition at line 202 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secServer(), and XrdSecProtocolsslInit().

time_t XrdSecProtocolssl::sslsessionlifetime [static]

Definition at line 203 of file XrdSecProtocolssl.hh.

Referenced by NewSession(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::sslselecttimeout [static]

Definition at line 204 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), secServer(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::sslsessioncachesize [static]

Definition at line 205 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

char * XrdSecProtocolssl::procdir [static]

Definition at line 206 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

XrdSecProtocolsslProc * XrdSecProtocolssl::proc [static]

Definition at line 207 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), secServer(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::errortimeout [static]

Definition at line 209 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), secClient(), and secServer().

int XrdSecProtocolssl::errorverify [static]

Definition at line 210 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), and secServer().

int XrdSecProtocolssl::errorqueue [static]

Definition at line 211 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), and secServer().

int XrdSecProtocolssl::erroraccept [static]

Definition at line 212 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), secClient(), and secServer().

int XrdSecProtocolssl::errorabort [static]

Definition at line 213 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), and secServer().

int XrdSecProtocolssl::errorread [static]

Definition at line 214 of file XrdSecProtocolssl.hh.

Referenced by Fatal(), secClient(), and secServer().

int XrdSecProtocolssl::forwardedproxies [static]

Definition at line 215 of file XrdSecProtocolssl.hh.

Referenced by secServer().

bool XrdSecProtocolssl::isServer [static]

Reimplemented from XrdSecTLayer.

Definition at line 217 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

bool XrdSecProtocolssl::forwardProxy [static]

Definition at line 218 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), and secClient().

bool XrdSecProtocolssl::allowSessions [static]

Definition at line 219 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), main(), and secClient().

X509_STORE * XrdSecProtocolssl::store [static]

Definition at line 220 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

X509_LOOKUP * XrdSecProtocolssl::lookup [static]

Definition at line 221 of file XrdSecProtocolssl.hh.

int XrdSecProtocolssl::verifydepth [static]

Definition at line 222 of file XrdSecProtocolssl.hh.

Referenced by GetEnvironment(), secClient(), and XrdSecProtocolsslInit().

int XrdSecProtocolssl::verifyindex [static]

Definition at line 223 of file XrdSecProtocolssl.hh.

int XrdSecProtocolssl::sessionfd

Definition at line 224 of file XrdSecProtocolssl.hh.

X509* XrdSecProtocolssl::client_cert

Definition at line 225 of file XrdSecProtocolssl.hh.

Referenced by Delete(), secServer(), and XrdSecProtocolssl().

X509* XrdSecProtocolssl::server_cert

Definition at line 226 of file XrdSecProtocolssl.hh.

Referenced by Delete(), secClient(), and XrdSecProtocolssl().

XrdOucString XrdSecProtocolssl::host

Definition at line 227 of file XrdSecProtocolssl.hh.

Referenced by secClient(), and XrdSecProtocolssl().

XrdOucHash< XrdOucString > XrdSecProtocolssl::gridmapstore [static]

Definition at line 235 of file XrdSecProtocolssl.hh.

Referenced by ReloadGridMapFile(), and secServer().

XrdOucHash< XrdOucString > XrdSecProtocolssl::vomsmapstore [static]

Definition at line 236 of file XrdSecProtocolssl.hh.

Referenced by ReloadVomsMapFile(), and VomsMapGroups().

XrdOucHash< XrdOucString > XrdSecProtocolssl::stringstore [static]

Definition at line 237 of file XrdSecProtocolssl.hh.

Referenced by STRINGSTORE().

XrdSysMutex XrdSecProtocolssl::StoreMutex [static]

Definition at line 238 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and STRINGSTORE().

XrdSysMutex XrdSecProtocolssl::VomsMapMutex [static]

Definition at line 239 of file XrdSecProtocolssl.hh.

Referenced by ReloadVomsMapFile().

XrdSysMutex XrdSecProtocolssl::GridMapMutex [static]

Definition at line 240 of file XrdSecProtocolssl.hh.

Referenced by ReloadGridMapFile(), and secServer().

XrdSysMutex * XrdSecProtocolssl::CryptoMutexPool [static]

Definition at line 241 of file XrdSecProtocolssl.hh.

Referenced by protocolssl_lock(), and XrdSecProtocolsslInit().

XrdSysMutex XrdSecProtocolssl::ThreadsInUseMutex [static]

Definition at line 242 of file XrdSecProtocolssl.hh.

Referenced by XrdSecsslThreadInUse::XrdSecsslThreadInUse(), and XrdSecsslThreadInUse::~XrdSecsslThreadInUse().

XrdSysMutex XrdSecProtocolssl::ErrorMutex [static]

Definition at line 243 of file XrdSecProtocolssl.hh.

Referenced by secClient(), and secServer().

XrdSysLogger XrdSecProtocolssl::Logger [static]

Definition at line 246 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

XrdSysError XrdSecProtocolssl::ssleDest [static]

Definition at line 247 of file XrdSecProtocolssl.hh.

Referenced by XrdSecProtocolsslInit().

time_t XrdSecProtocolssl::storeLoadTime [static]

Definition at line 248 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

char XrdSecProtocolssl::proxyBuff[16384]

Definition at line 256 of file XrdSecProtocolssl.hh.

Referenced by secClient(), secServer(), and XrdSecProtocolssl().

SSL_CTX * XrdSecProtocolssl::ctx [static]

Definition at line 257 of file XrdSecProtocolssl.hh.

Referenced by secServer(), and XrdSecProtocolsslInit().

SSL_CTX* XrdSecProtocolssl::clientctx

Definition at line 258 of file XrdSecProtocolssl.hh.

Referenced by secClient(), and XrdSecProtocolssl().

XrdSysMutex XrdSecProtocolssl::SSLMutex

Definition at line 260 of file XrdSecProtocolssl.hh.

Referenced by Delete(), secClient(), and secServer().

bool XrdSecProtocolssl::terminate

Definition at line 261 of file XrdSecProtocolssl.hh.

Referenced by Delete(), secServer(), and XrdSecProtocolssl().

struct sockaddr XrdSecProtocolssl::hostaddr

Definition at line 268 of file XrdSecProtocolssl.hh.

char* XrdSecProtocolssl::credBuff

Definition at line 269 of file XrdSecProtocolssl.hh.

Referenced by Delete(), and XrdSecProtocolssl().

int XrdSecProtocolssl::Step

Definition at line 270 of file XrdSecProtocolssl.hh.

int XrdSecProtocolssl::sd

Definition at line 272 of file XrdSecProtocolssl.hh.

int XrdSecProtocolssl::listen_sd

Definition at line 273 of file XrdSecProtocolssl.hh.

struct sockaddr_in XrdSecProtocolssl::sa_serv

Definition at line 274 of file XrdSecProtocolssl.hh.

struct sockaddr_in XrdSecProtocolssl::sa_cli

Definition at line 275 of file XrdSecProtocolssl.hh.

SSL* XrdSecProtocolssl::ssl

Definition at line 276 of file XrdSecProtocolssl.hh.

Referenced by Delete(), secClient(), secServer(), and XrdSecProtocolssl().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:50:44 2011 for ROOT_528-00b_version by  doxygen 1.5.1