xrootd
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdSecTLayer Class Referenceabstract

#include <XrdSecTLayer.hh>

Inheritance diagram for XrdSecTLayer:
Inheritance graph
[legend]
Collaboration diagram for XrdSecTLayer:
Collaboration graph
[legend]

Classes

struct  TLayerRR
 

Public Types

enum  Initiator { isClient = 0 , isServer }
 

Public Member Functions

 XrdSecTLayer (const char *pName, Initiator who1st=isClient)
 
virtual void secClient (int theFD, XrdOucErrInfo *einfo)=0
 
virtual void secServer (int theFD, XrdOucErrInfo *einfo)=0
 
virtual void Delete ()=0
 Delete the protocol object. DO NOT use C++ delete() on this object.
 
virtual int Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0)
 
virtual XrdSecCredentialsgetCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0)
 
void secXeq ()
 
- Public Member Functions inherited from XrdSecProtocol
virtual int Encrypt (const char *inbuff, int inlen, XrdSecBuffer **outbuff)
 
virtual int Decrypt (const char *inbuff, int inlen, XrdSecBuffer **outbuff)
 
virtual int Sign (const char *inbuff, int inlen, XrdSecBuffer **outbuff)
 
virtual int Verify (const char *inbuff, int inlen, const char *sigbuff, int siglen)
 
virtual int getKey (char *buff=0, int size=0)
 
virtual int setKey (char *buff, int size)
 
virtual bool needTLS ()
 Check if this protocol requires TLS to properly function.
 
 XrdSecProtocol (const char *pName)
 Constructor.
 

Protected Member Functions

virtual ~XrdSecTLayer ()
 
- Protected Member Functions inherited from XrdSecProtocol
virtual ~XrdSecProtocol ()
 Destructor (prevents use of direct delete).
 

Protected Attributes

pthread_t secTid
 

Private Member Functions

int bootUp (Initiator Who)
 
int Read (int FD, char *Buff, int rdLen)
 
int secDone ()
 
void secDrain ()
 
const char * secErrno (int rc, char *buff)
 
void secError (const char *Msg, int rc, int iserrno=1)
 

Private Attributes

XrdSysSemaphore mySem
 
Initiator Starter
 
Initiator Responder
 
int myFD
 
int urFD
 
int Tmax
 
int Tcur
 
int eCode
 
char * eText
 
XrdOucErrInfoeDest
 
struct XrdSecTLayer::TLayerRR Hdr
 

Static Private Attributes

static const int buffSz = 8192
 
static const int hdrSz = sizeof(TLayerRR)
 
static const int dataSz = buffSz - hdrSz
 

Additional Inherited Members

- Public Attributes inherited from XrdSecProtocol
XrdSecEntity Entity
 

Member Enumeration Documentation

◆ Initiator

Enumerator
isClient 
isServer 

Constructor & Destructor Documentation

◆ XrdSecTLayer()

XrdSecTLayer::XrdSecTLayer ( const char *  pName,
Initiator  who1st = isClient 
)

◆ ~XrdSecTLayer()

virtual XrdSecTLayer::~XrdSecTLayer ( )
inlineprotectedvirtual

References close, eText, and myFD.

Member Function Documentation

◆ Authenticate()

virtual int XrdSecTLayer::Authenticate ( XrdSecCredentials cred,
XrdSecParameters **  parms,
XrdOucErrInfo einfo = 0 
)
virtual

Authenticate a client.

Parameters
credCredentials supplied by the client.
parmsPlace where the address of additional authentication data is to be placed for another autrhentication handshake.
einfoThe error information object where error messages should be placed. The messages are returned to the client. Should einfo be null, messages should be written to stderr.
Returns
> 0 -> parms present (more authentication needed) = 0 -> Entity present (authentication suceeded) < 0 -> einfo present (error has occurred)

Implements XrdSecProtocol.

◆ bootUp()

int XrdSecTLayer::bootUp ( Initiator  Who)
private

◆ Delete()

virtual void XrdSecTLayer::Delete ( )
pure virtual

Delete the protocol object. DO NOT use C++ delete() on this object.

Implements XrdSecProtocol.

◆ getCredentials()

virtual XrdSecCredentials * XrdSecTLayer::getCredentials ( XrdSecParameters parm = 0,
XrdOucErrInfo einfo = 0 
)
virtual

Generate client credentials to be used in the authentication process.

Parameters
parmPointer to the information returned by the server either in the initial login response or the authmore response.
einfoThe error information object where error messages should be placed. The messages are returned to the client. Should einfo be null, messages should be written to stderr.
Returns
Success: Pointer to credentials to sent to the server. The caller is responsible for deleting the object. Failure: Null pointer with einfo, if supplied, containing the reason for the failure.

Implements XrdSecProtocol.

◆ Read()

int XrdSecTLayer::Read ( int  FD,
char *  Buff,
int  rdLen 
)
private

◆ secClient()

virtual void XrdSecTLayer::secClient ( int  theFD,
XrdOucErrInfo einfo 
)
pure virtual

◆ secDone()

int XrdSecTLayer::secDone ( )
private

◆ secDrain()

void XrdSecTLayer::secDrain ( )
private

◆ secErrno()

const char * XrdSecTLayer::secErrno ( int  rc,
char *  buff 
)
private

◆ secError()

void XrdSecTLayer::secError ( const char *  Msg,
int  rc,
int  iserrno = 1 
)
private

◆ secServer()

virtual void XrdSecTLayer::secServer ( int  theFD,
XrdOucErrInfo einfo 
)
pure virtual

◆ secXeq()

void XrdSecTLayer::secXeq ( )

Member Data Documentation

◆ buffSz

const int XrdSecTLayer::buffSz = 8192
staticprivate

◆ dataSz

const int XrdSecTLayer::dataSz = buffSz - hdrSz
staticprivate

◆ eCode

int XrdSecTLayer::eCode
private

◆ eDest

XrdOucErrInfo* XrdSecTLayer::eDest
private

◆ eText

char* XrdSecTLayer::eText
private

Referenced by ~XrdSecTLayer().

◆ Hdr

struct XrdSecTLayer::TLayerRR XrdSecTLayer::Hdr
private

◆ hdrSz

const int XrdSecTLayer::hdrSz = sizeof(TLayerRR)
staticprivate

◆ myFD

int XrdSecTLayer::myFD
private

Referenced by ~XrdSecTLayer().

◆ mySem

XrdSysSemaphore XrdSecTLayer::mySem
private

◆ Responder

Initiator XrdSecTLayer::Responder
private

◆ secTid

pthread_t XrdSecTLayer::secTid
protected

◆ Starter

Initiator XrdSecTLayer::Starter
private

◆ Tcur

int XrdSecTLayer::Tcur
private

◆ Tmax

int XrdSecTLayer::Tmax
private

◆ urFD

int XrdSecTLayer::urFD
private

The documentation for this class was generated from the following file: