xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdSecProtocolpwd Class Reference

#include <XrdSecProtocolpwd.hh>

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

Public Member Functions

int Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0)
 
XrdSecCredentialsgetCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0)
 
 XrdSecProtocolpwd (int opts, const char *hname, XrdNetAddrInfo &endPoint, const char *parms=0)
 
virtual ~XrdSecProtocolpwd ()
 
void Delete ()
 Delete the protocol object. DO NOT use C++ delete() on this object. More...
 
- 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. More...
 
 XrdSecProtocol (const char *pName)
 Constructor. More...
 

Static Public Member Functions

static char * Init (pwdOptions o, XrdOucErrInfo *erp)
 
static void PrintTimeStat ()
 
static XrdOucTraceEnableTracing ()
 

Private Member Functions

int ParseClientInput (XrdSutBuffer *br, XrdSutBuffer **bm, String &emsg)
 
int ParseServerInput (XrdSutBuffer *br, XrdSutBuffer **bm, String &cmsg)
 
int ParseCrypto (XrdSutBuffer *buf)
 
XrdSecCredentialsErrC (XrdOucErrInfo *einfo, XrdSutBuffer *b1, XrdSutBuffer *b2, XrdSutBuffer *b3, kXR_int32 ecode, const char *msg1=0, const char *msg2=0, const char *msg3=0)
 
int ErrS (String ID, XrdOucErrInfo *einfo, XrdSutBuffer *b1, XrdSutBuffer *b2, XrdSutBuffer *b3, kXR_int32 ecode, const char *msg1=0, const char *msg2=0, const char *msg3=0)
 
XrdSutBucketQueryCreds (XrdSutBuffer *bm, bool netrc, int &status)
 
int QueryUser (int &status, String &cmsg)
 
int QueryCrypt (String &fn, String &pwhash)
 
int QueryNetRc (String host, String &passwd, int &status)
 
bool CheckCreds (XrdSutBucket *creds, int credtype)
 
bool CheckCredsAFS (XrdSutBucket *creds, int ctype)
 
bool CheckTimeStamp (XrdSutBuffer *b, int skew, String &emsg)
 
bool CheckRtag (XrdSutBuffer *bm, String &emsg)
 
int ExportCreds (XrdSutBucket *creds)
 
int SaveCreds (XrdSutBucket *creds)
 
int UpdateAlog ()
 
int GetUserHost (String &usr, String &host)
 
int AddSerialized (char opt, kXR_int32 step, String ID, XrdSutBuffer *bls, XrdSutBuffer *buf, kXR_int32 type, XrdCryptoCipher *cip)
 
int DoubleHash (XrdCryptoFactory *cf, XrdSutBucket *bck, XrdSutBucket *s1, XrdSutBucket *s2=0, const char *tag=0)
 

Static Private Member Functions

static void ErrF (XrdOucErrInfo *einfo, kXR_int32 ecode, const char *msg1, const char *msg2=0, const char *msg3=0)
 

Private Attributes

XrdNetAddrInfo epAddr
 
int options
 
char CName [256]
 
bool srvMode
 
pwdHSVarshs
 
XrdSecCredentialsclientCreds
 

Static Private Attributes

static XrdSysMutex pwdContext
 
static String FileAdmin
 
static String FileExpCreds
 
static String FileUser
 
static String FileCrypt
 
static String FileSrvPuk
 
static String SrvID
 
static String SrvEmail
 
static String DefCrypto
 
static String DefError
 
static XrdSutPFile PFAdmin
 
static XrdSutPFile PFAlog
 
static XrdSutPFile PFSrvPuk
 
static int ncrypt
 
static int cryptID [XrdCryptoMax]
 
static String cryptName [XrdCryptoMax]
 
static XrdCryptoCipherloccip [XrdCryptoMax]
 
static XrdCryptoCipherrefcip [XrdCryptoMax]
 
static XrdSutPFCache cacheAdmin
 
static XrdSutPFCache cacheSrvPuk
 
static XrdSutPFCache cacheUser
 
static XrdSutPFCache cacheAlog
 
static int Debug
 
static bool Server
 
static int UserPwd
 
static bool SysPwd
 
static int VeriClnt
 
static int VeriSrv
 
static int AutoReg
 
static int LifeCreds
 
static int MaxPrompts
 
static int MaxFailures
 
static int AutoLogin
 
static int TimeSkew
 
static bool KeepCreds
 
static int FmtExpCreds
 
static XrdSysLogger Logger
 
static XrdSysError eDest
 
static XrdOucTracePWDTrace
 

Additional Inherited Members

- Public Attributes inherited from XrdSecProtocol
XrdSecEntity Entity
 
- Protected Member Functions inherited from XrdSecProtocol
virtual ~XrdSecProtocol ()
 Destructor (prevents use of direct delete). More...
 

Constructor & Destructor Documentation

XrdSecProtocolpwd::XrdSecProtocolpwd ( int  opts,
const char *  hname,
XrdNetAddrInfo endPoint,
const char *  parms = 0 
)
virtual XrdSecProtocolpwd::~XrdSecProtocolpwd ( )
inlinevirtual

Member Function Documentation

int XrdSecProtocolpwd::AddSerialized ( char  opt,
kXR_int32  step,
String  ID,
XrdSutBuffer bls,
XrdSutBuffer buf,
kXR_int32  type,
XrdCryptoCipher cip 
)
private
int XrdSecProtocolpwd::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.

bool XrdSecProtocolpwd::CheckCreds ( XrdSutBucket creds,
int  credtype 
)
private
bool XrdSecProtocolpwd::CheckCredsAFS ( XrdSutBucket creds,
int  ctype 
)
private
bool XrdSecProtocolpwd::CheckRtag ( XrdSutBuffer bm,
String emsg 
)
private
bool XrdSecProtocolpwd::CheckTimeStamp ( XrdSutBuffer b,
int  skew,
String emsg 
)
private
void XrdSecProtocolpwd::Delete ( )
virtual

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

Implements XrdSecProtocol.

int XrdSecProtocolpwd::DoubleHash ( XrdCryptoFactory cf,
XrdSutBucket bck,
XrdSutBucket s1,
XrdSutBucket s2 = 0,
const char *  tag = 0 
)
private
static XrdOucTrace* XrdSecProtocolpwd::EnableTracing ( )
static
XrdSecCredentials* XrdSecProtocolpwd::ErrC ( XrdOucErrInfo einfo,
XrdSutBuffer b1,
XrdSutBuffer b2,
XrdSutBuffer b3,
kXR_int32  ecode,
const char *  msg1 = 0,
const char *  msg2 = 0,
const char *  msg3 = 0 
)
private
static void XrdSecProtocolpwd::ErrF ( XrdOucErrInfo einfo,
kXR_int32  ecode,
const char *  msg1,
const char *  msg2 = 0,
const char *  msg3 = 0 
)
staticprivate
int XrdSecProtocolpwd::ErrS ( String  ID,
XrdOucErrInfo einfo,
XrdSutBuffer b1,
XrdSutBuffer b2,
XrdSutBuffer b3,
kXR_int32  ecode,
const char *  msg1 = 0,
const char *  msg2 = 0,
const char *  msg3 = 0 
)
private
int XrdSecProtocolpwd::ExportCreds ( XrdSutBucket creds)
private
XrdSecCredentials* XrdSecProtocolpwd::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.

int XrdSecProtocolpwd::GetUserHost ( String usr,
String host 
)
private
static char* XrdSecProtocolpwd::Init ( pwdOptions  o,
XrdOucErrInfo erp 
)
static
int XrdSecProtocolpwd::ParseClientInput ( XrdSutBuffer br,
XrdSutBuffer **  bm,
String emsg 
)
private
int XrdSecProtocolpwd::ParseCrypto ( XrdSutBuffer buf)
private
int XrdSecProtocolpwd::ParseServerInput ( XrdSutBuffer br,
XrdSutBuffer **  bm,
String cmsg 
)
private
static void XrdSecProtocolpwd::PrintTimeStat ( )
static
XrdSutBucket* XrdSecProtocolpwd::QueryCreds ( XrdSutBuffer bm,
bool  netrc,
int &  status 
)
private
int XrdSecProtocolpwd::QueryCrypt ( String fn,
String pwhash 
)
private
int XrdSecProtocolpwd::QueryNetRc ( String  host,
String passwd,
int &  status 
)
private
int XrdSecProtocolpwd::QueryUser ( int &  status,
String cmsg 
)
private
int XrdSecProtocolpwd::SaveCreds ( XrdSutBucket creds)
private
int XrdSecProtocolpwd::UpdateAlog ( )
private

Member Data Documentation

int XrdSecProtocolpwd::AutoLogin
staticprivate
int XrdSecProtocolpwd::AutoReg
staticprivate
XrdSutPFCache XrdSecProtocolpwd::cacheAdmin
staticprivate
XrdSutPFCache XrdSecProtocolpwd::cacheAlog
staticprivate
XrdSutPFCache XrdSecProtocolpwd::cacheSrvPuk
staticprivate
XrdSutPFCache XrdSecProtocolpwd::cacheUser
staticprivate
XrdSecCredentials* XrdSecProtocolpwd::clientCreds
private
char XrdSecProtocolpwd::CName[256]
private
int XrdSecProtocolpwd::cryptID[XrdCryptoMax]
staticprivate
String XrdSecProtocolpwd::cryptName[XrdCryptoMax]
staticprivate
int XrdSecProtocolpwd::Debug
staticprivate
String XrdSecProtocolpwd::DefCrypto
staticprivate
String XrdSecProtocolpwd::DefError
staticprivate
XrdSysError XrdSecProtocolpwd::eDest
staticprivate
XrdNetAddrInfo XrdSecProtocolpwd::epAddr
private
String XrdSecProtocolpwd::FileAdmin
staticprivate
String XrdSecProtocolpwd::FileCrypt
staticprivate
String XrdSecProtocolpwd::FileExpCreds
staticprivate
String XrdSecProtocolpwd::FileSrvPuk
staticprivate
String XrdSecProtocolpwd::FileUser
staticprivate
int XrdSecProtocolpwd::FmtExpCreds
staticprivate
pwdHSVars* XrdSecProtocolpwd::hs
private
bool XrdSecProtocolpwd::KeepCreds
staticprivate
int XrdSecProtocolpwd::LifeCreds
staticprivate
XrdCryptoCipher* XrdSecProtocolpwd::loccip[XrdCryptoMax]
staticprivate
XrdSysLogger XrdSecProtocolpwd::Logger
staticprivate
int XrdSecProtocolpwd::MaxFailures
staticprivate
int XrdSecProtocolpwd::MaxPrompts
staticprivate
int XrdSecProtocolpwd::ncrypt
staticprivate
int XrdSecProtocolpwd::options
private
XrdSutPFile XrdSecProtocolpwd::PFAdmin
staticprivate
XrdSutPFile XrdSecProtocolpwd::PFAlog
staticprivate
XrdSutPFile XrdSecProtocolpwd::PFSrvPuk
staticprivate
XrdSysMutex XrdSecProtocolpwd::pwdContext
staticprivate
XrdOucTrace* XrdSecProtocolpwd::PWDTrace
staticprivate
XrdCryptoCipher* XrdSecProtocolpwd::refcip[XrdCryptoMax]
staticprivate
bool XrdSecProtocolpwd::Server
staticprivate
String XrdSecProtocolpwd::SrvEmail
staticprivate
String XrdSecProtocolpwd::SrvID
staticprivate
bool XrdSecProtocolpwd::srvMode
private
bool XrdSecProtocolpwd::SysPwd
staticprivate
int XrdSecProtocolpwd::TimeSkew
staticprivate
int XrdSecProtocolpwd::UserPwd
staticprivate
int XrdSecProtocolpwd::VeriClnt
staticprivate
int XrdSecProtocolpwd::VeriSrv
staticprivate

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