#include <XrdSecInterface.hh>
Public Member Functions | |
virtual int | Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0)=0 |
virtual XrdSecCredentials * | getCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0)=0 |
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. | |
virtual void | Delete ()=0 |
Delete the protocol object. DO NOT use C++ delete() on this object. | |
XrdSecProtocol (const char *pName) | |
Constructor. | |
Public Attributes | |
XrdSecEntity | Entity |
Protected Member Functions | |
virtual | ~XrdSecProtocol () |
Destructor (prevents use of direct delete). |
XrdSecProtocol::XrdSecProtocol | ( | const char * | pName | ) | [inline] |
Constructor.
virtual XrdSecProtocol::~XrdSecProtocol | ( | ) | [inline, protected, virtual] |
Destructor (prevents use of direct delete).
virtual int XrdSecProtocol::Authenticate | ( | XrdSecCredentials * | cred, | |
XrdSecParameters ** | parms, | |||
XrdOucErrInfo * | einfo = 0 | |||
) | [pure virtual] |
Authenticate a client.
cred | Credentials supplied by the client. | |
parms | Place where the address of additional authentication data is to be placed for another autrhentication handshake. | |
einfo | The 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. |
Implemented in XrdSecProtocolhost, XrdSecTLayer, XrdSecProtocolgsi, XrdSecProtocolpwd, and XrdSecProtocolsss.
virtual int XrdSecProtocol::Decrypt | ( | const char * | inbuff, | |
int | inlen, | |||
XrdSecBuffer ** | outbuff | |||
) | [inline, virtual] |
Decrypt data in inbuff using the session key.
inbuff | buffer holding data to be decrypted. | |
inlen | length of the data. | |
outbuff | place where a pointer to the decrypted data is placed. |
Reimplemented in XrdSecProtocolgsi.
virtual void XrdSecProtocol::Delete | ( | ) | [pure virtual] |
Delete the protocol object. DO NOT use C++ delete() on this object.
Implemented in XrdSecProtocolhost, XrdSecTLayer, XrdSecProtocolgsi, XrdSecProtocolpwd, and XrdSecProtocolsss.
virtual int XrdSecProtocol::Encrypt | ( | const char * | inbuff, | |
int | inlen, | |||
XrdSecBuffer ** | outbuff | |||
) | [inline, virtual] |
Encrypt data in inbuff using the session key.
inbuff | buffer holding data to be encrypted. | |
inlen | length of the data. | |
outbuff | place where a pointer to the encrypted data is placed. |
Reimplemented in XrdSecProtocolgsi.
virtual XrdSecCredentials* XrdSecProtocol::getCredentials | ( | XrdSecParameters * | parm = 0 , |
|
XrdOucErrInfo * | einfo = 0 | |||
) | [pure virtual] |
Generate client credentials to be used in the authentication process.
parm | Pointer to the information returned by the server either in the initial login response or the authmore response. | |
einfo | The 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. |
Implemented in XrdSecProtocolhost, XrdSecTLayer, XrdSecProtocolgsi, XrdSecProtocolpwd, and XrdSecProtocolsss.
virtual int XrdSecProtocol::getKey | ( | char * | buff = 0 , |
|
int | size = 0 | |||
) | [inline, virtual] |
Get the current encryption key (i.e. session key)
buff | buffer to hold the key, and may be null. | |
size | size of the buffer. |
Reimplemented in XrdSecProtocolgsi.
virtual bool XrdSecProtocol::needTLS | ( | ) | [inline, virtual] |
Check if this protocol requires TLS to properly function.
virtual int XrdSecProtocol::setKey | ( | char * | buff, | |
int | size | |||
) | [inline, virtual] |
Set the current encryption key
buff | buffer that holds the key. | |
size | size of the key. |
Reimplemented in XrdSecProtocolgsi.
virtual int XrdSecProtocol::Sign | ( | const char * | inbuff, | |
int | inlen, | |||
XrdSecBuffer ** | outbuff | |||
) | [inline, virtual] |
Sign data in inbuff using the session key.
inbuff | buffer holding data to be signed. | |
inlen | length of the data. | |
outbuff | place where a pointer to the signature is placed. |
Reimplemented in XrdSecProtocolgsi.
virtual int XrdSecProtocol::Verify | ( | const char * | inbuff, | |
int | inlen, | |||
const char * | sigbuff, | |||
int | siglen | |||
) | [inline, virtual] |
Verify a signature using the session key.
inbuff | buffer holding data to be verified. | |
inlen | length of the data. | |
sigbuff | pointer to the signature data. | |
siglen | length of the signature data. |
Reimplemented in XrdSecProtocolgsi.
Structure holding the entity's identification. It is filled in by a successful call to Authenticate() (i.e. it returns 0).