xrootd
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, const struct sockaddr *ipadd, const char *parms=0)
virtual ~XrdSecProtocolpwd ()
void Delete ()
- Public Member Functions inherited from XrdSecProtocol
virtual int Encrypt (const char *, int, XrdSecBuffer **)
virtual int Decrypt (const char *, int, XrdSecBuffer **)
virtual int Sign (const char *, int, XrdSecBuffer **)
virtual int Verify (const char *, int, const char *, int)
virtual int getKey (char *=0, int=0)
virtual int setKey (char *, int)
 XrdSecProtocol (const char *pName)

Static Public Member Functions

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

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

int options
struct sockaddr hostaddr
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 = "/.xrdpass"
static String FileSrvPuk = ""
static String SrvID = ""
static String SrvEmail = ""
static String DefCrypto = "ssl"
static String DefError = "insufficient credentials - contact "
static XrdSutPFile PFAdmin
static XrdSutPFile PFAlog
static XrdSutPFile PFSrvPuk
static int ncrypt = 0
static int cryptID [XrdCryptoMax] = {0}
static String cryptName [XrdCryptoMax] = {0}
static XrdCryptoCipherloccip [XrdCryptoMax]
static XrdCryptoCipherrefcip [XrdCryptoMax] = {0}
static XrdSutCache cacheAdmin
static XrdSutCache cacheSrvPuk
static XrdSutCache cacheUser
static XrdSutCache cacheAlog
static int Debug = 0
static bool Server = 1
static int UserPwd = 0
static bool SysPwd = 0
static int VeriClnt = 2
static int VeriSrv = 1
static int AutoReg = kpAR_none
static int LifeCreds = 0
static int MaxPrompts = 3
static int MaxFailures = 10
static int AutoLogin = 0
static int TimeSkew = 300
static bool KeepCreds = 0
static XrdSysLogger Logger
static XrdSysError eDest
static XrdOucTraceSecTrace = 0

Additional Inherited Members

- Public Attributes inherited from XrdSecProtocol
XrdSecEntity Entity
- Protected Member Functions inherited from XrdSecProtocol
virtual ~XrdSecProtocol ()

Constructor & Destructor Documentation

XrdSecProtocolpwd::XrdSecProtocolpwd ( int  opts,
const char *  hname,
const struct sockaddr *  ipadd,
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

Implements XrdSecProtocol.

References XrdSutBuffer::AddBucket(), AddSerialized(), XrdOucString::beginswith(), XrdSutBucket::buffer, XrdSecBuffer::buffer, XrdOucString::c_str(), cacheAdmin, CheckCreds(), CheckRtag(), CheckTimeStamp(), clientCreds, ClientStepStr(), CName, XrdSutPFEntry::cnt, pwdHSVars::Cref, cryptID, CryptList, pwdStatus_t::ctype, XrdSutBuffer::Deactivate(), DEBUG, DefError, XrdSutBuffer::Dump(), XrdSecProtocol::Entity, EPNAME, pwdHSVars::ErrMsg, ErrS(), ExportCreds(), FileExpCreds, XrdSutCache::Flush(), XrdSutBuffer::GetBucket(), XrdSutBuffer::GetProtocol(), XrdSutBuffer::GetStep(), pwdHSVars::Hcip, hs, pwdHSVars::ID, KeepCreds, kOptsAFSPwd, kOptsChngPwd, kOptsClntTty, kOptsCrypPwd, kOptsExpCred, kpCT_afs, kpCT_afsenc, kpCT_crypt, kpCT_new, kpCT_normal, kPFE_allowed, kPFE_crypt, kPFE_disabled, kPFE_expired, kPFE_onetime, kpST_error, kpST_more, kpST_ok, kPWErrAddBucket, kPWErrBadCreds, kPWErrBadOpt, kPWErrBadProtocol, kPWErrBadRndmTag, kPWErrDecodeBuffer, kPWErrError, kPWErrLoadCrypto, kPWErrNoPublic, kPWErrParseBuffer, kPWErrSerialBuffer, kXPC_autoreg, kXPC_creds, kXPC_failureack, kXPC_normal, kXPC_signedrtag, kXPC_verifysrv, kXPS_credsreq, kXPS_failure, kXPS_none, kXPS_puk, kXPS_rtag, kXPS_signedrtag, kXRS_afsinfo, kXRS_creds, kXRS_main, kXRS_message, kXRS_puk, kXRS_status, XrdOucString::length(), MaxPrompts, XrdSutPFEntry::mtime, XrdSecEntity::name, XrdSutPFEntry::name, ncrypt, pwdStatus_t::options, ParseCrypto(), ParseServerInput(), pwdHSVars::Pent, XrdSecEntity::prot, pwdContext, QTRACE, QueryUser(), refcip, REL2, pwdHSVars::RemVers, pwdHSVars::RtagOK, SafeDelArray, SafeDelete, SaveCreds(), XrdSutBuffer::Serialized(), ServerStepStr(), XrdSutBucket::size, XrdSecBuffer::size, XrdSutPFEntry::status, pwdHSVars::Step, XrdSecEntity::tident, TimeSkew, pwdHSVars::TimeStamp, XrdSutBucket::ToString(), pwdHSVars::Tty, XrdSutBuffer::UpdateBucket(), pwdHSVars::User, XrdSysPrivGuard::Valid(), VeriClnt, XrdSecPROTOIDENT, XrdSecPROTOIDLEN, and XrdSutToHex().

bool XrdSecProtocolpwd::CheckCreds ( XrdSutBucket creds,
int  credtype 
)
private
bool XrdSecProtocolpwd::CheckCredsAFS ( XrdSutBucket creds,
int  ctype 
)
private

Referenced by CheckCreds().

bool XrdSecProtocolpwd::CheckRtag ( XrdSutBuffer bm,
String emsg 
)
private
bool XrdSecProtocolpwd::CheckTimeStamp ( XrdSutBuffer b,
int  skew,
String emsg 
)
private
void XrdSecProtocolpwd::Delete ( )
virtual
int XrdSecProtocolpwd::DoubleHash ( XrdCryptoFactory cf,
XrdSutBucket bck,
XrdSutBucket s1,
XrdSutBucket s2 = 0,
const char *  tag = 0 
)
private
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

References ErrF(), and REL3.

Referenced by getCredentials().

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

References ErrF(), kpST_error, and REL3.

Referenced by Authenticate().

int XrdSecProtocolpwd::ExportCreds ( XrdSutBucket creds)
private
XrdSecCredentials * XrdSecProtocolpwd::getCredentials ( XrdSecParameters parm = 0,
XrdOucErrInfo einfo = 0 
)
virtual

Implements XrdSecProtocol.

References XrdSutBuffer::AddBucket(), AddSerialized(), AutoLogin, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdSutBucket::buffer, XrdSecBuffer::buffer, XrdOucString::c_str(), CheckRtag(), clientCreds, ClientStepStr(), XrdSutPFEntry::cnt, CryptList, pwdHSVars::CryptoMod, pwdStatus_t::ctype, XrdSutBuffer::Deactivate(), DEBUG, XrdSutBuffer::Dump(), EPNAME, ErrC(), pwdHSVars::ErrMsg, XrdSutBuffer::GetBucket(), XrdSutBuffer::GetProtocol(), XrdSutBuffer::GetStep(), pwdHSVars::Hcip, hs, pwdHSVars::ID, pwdHSVars::Iter, kOptsChngPwd, kOptsClntTty, kpCT_afs, kpCT_crypt, kpCT_normal, kPFE_onetime, kPWErrAddBucket, kPWErrBadOpt, kPWErrBadProtocol, kPWErrBadRndmTag, kPWErrCreateBucket, kPWErrDecodeBuffer, kPWErrDuplicateBucket, kPWErrError, kPWErrLoadCrypto, kPWErrNoBuffer, kPWErrNoPublic, kPWErrNoUser, kPWErrParseBuffer, kPWErrQueryCreds, kPWErrSerialBuffer, kXPC_autoreg, kXPC_creds, kXPC_failureack, kXPC_none, kXPC_normal, kXPC_signedrtag, kXPC_verifysrv, kXPS_credsreq, kXPS_failure, kXPS_init, kXPS_newpuk, kXPS_puk, kXPS_rtag, kXPS_signedrtag, kXRS_cryptomod, kXRS_main, kXRS_message, kXRS_puk, kXRS_status, kXRS_user, kXRS_version, XrdOucString::length(), XrdSutBuffer::MarshalBucket(), XrdSutBuffer::Message(), pwdStatus_t::options, pwdHSVars::Parms, ParseClientInput(), ParseCrypto(), pwdHSVars::Pent, XrdCryptoCipher::Public(), pwdContext, QTRACE, QueryCreds(), REL2, pwdHSVars::RemVers, SafeDelArray, XrdSutBuffer::Serialized(), ServerStepStr(), XrdSutPFBuf::SetBuf(), XrdSecBuffer::size, srvMode, XrdSutPFEntry::status, pwdHSVars::Step, pwdHSVars::SysPwd, pwdHSVars::Tag, pwdHSVars::TimeStamp, pwdHSVars::Tty, XrdSutBuffer::UpdateBucket(), pwdHSVars::User, VeriSrv, Version, XrdSecPROTOIDENT, and XrdSutBuckStr().

int XrdSecProtocolpwd::GetUserHost ( String usr,
String host 
)
private
char * XrdSecProtocolpwd::Init ( pwdOptions  o,
XrdOucErrInfo erp 
)
static

References AdminRef, pwdOptions::alog, pwdOptions::alogfile, pwdOptions::areg, AutoLogin, AutoReg, XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdOucString::c_str(), cacheAdmin, cacheAlog, cacheSrvPuk, cacheUser, XrdCryptoFactory::Cipher(), pwdOptions::clist, pwdOptions::cpass, cryptID, cryptName, cryptoTRACE_Debug, cryptoTRACE_Dump, DEBUG, pwdOptions::debug, Debug, DefCrypto, DefError, pwdOptions::dir, XrdSutCache::Dump(), eDest, XrdOucString::endswith(), EPNAME, XrdOucString::erase(), ErrF(), pwdOptions::expcreds, FileAdmin, FileCrypt, FileExpCreds, FileSrvPuk, FileUser, XrdSutCache::Get(), XrdCryptoFactory::GetCryptoFactory(), XrdCryptoFactory::ID(), XrdSutCache::Init(), XrdSutPFile::Init(), XrdOucString::insert(), XrdSutPFile::IsValid(), pwdOptions::keepcreds, KeepCreds, kPFEcreate, kPWErrError, kPWErrInit, XrdSutPFBuf::len, XrdOucString::length(), pwdOptions::lifecreds, LifeCreds, XrdSutCache::Load(), XrdSysError::logger(), Logger, pwdOptions::maxfailures, MaxFailures, pwdOptions::maxprompts, MaxPrompts, pwdOptions::mode, XrdCryptoFactory::Name(), ncrypt, PFAdmin, PFAlog, PFSrvPuk, Prefix, PRINT, QTRACE, XrdSutPFile::ReadEntry(), refcip, XrdOucString::rfind(), SecTrace, Server, XrdSutBucket::SetBuf(), XrdCryptoFactory::SetTrace(), SrvEmail, SrvID, pwdOptions::srvpuk, stat(), pwdOptions::syspwd, SysPwd, XrdOucString::tokenize(), TRACE_Authen, TRACE_Debug, pwdOptions::udir, pwdOptions::upwd, UserPwd, UserRef, XrdSysPrivGuard::Valid(), pwdOptions::vericlnt, VeriClnt, pwdOptions::verisrv, VeriSrv, Version, XrdOucTrace::What, XrdCryptoMax, XrdCryptoSetTrace(), XrdSutExpand(), XrdSutHome(), XrdSutMkdir(), and XrdSutSetTrace().

Referenced by XrdSecProtocolpwdInit().

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 = 0
staticprivate
int XrdSecProtocolpwd::AutoReg = kpAR_none
staticprivate

Referenced by Init(), and QueryUser().

XrdSutCache XrdSecProtocolpwd::cacheAdmin
staticprivate
XrdSutCache XrdSecProtocolpwd::cacheAlog
staticprivate

Referenced by Init(), QueryCreds(), and UpdateAlog().

XrdSutCache XrdSecProtocolpwd::cacheSrvPuk
staticprivate

Referenced by Init(), and ParseClientInput().

XrdSutCache XrdSecProtocolpwd::cacheUser
staticprivate

Referenced by Init(), and QueryUser().

XrdSecCredentials* XrdSecProtocolpwd::clientCreds
private
char XrdSecProtocolpwd::CName[256]
private

Referenced by Authenticate(), and XrdSecProtocolpwd().

int XrdSecProtocolpwd::cryptID = {0}
staticprivate

Referenced by Authenticate(), Init(), and ParseCrypto().

String XrdSecProtocolpwd::cryptName = {0}
staticprivate

Referenced by Init().

int XrdSecProtocolpwd::Debug = 0
staticprivate

Referenced by ErrF(), and Init().

String XrdSecProtocolpwd::DefCrypto = "ssl"
staticprivate

Referenced by Init().

String XrdSecProtocolpwd::DefError = "insufficient credentials - contact "
staticprivate

Referenced by Authenticate(), and Init().

XrdSysError XrdSecProtocolpwd::eDest
staticprivate

Referenced by Init().

String XrdSecProtocolpwd::FileAdmin = ""
staticprivate

Referenced by Init().

String XrdSecProtocolpwd::FileCrypt = "/.xrdpass"
staticprivate

Referenced by Init(), and QueryUser().

String XrdSecProtocolpwd::FileExpCreds = ""
staticprivate

Referenced by Authenticate(), ExportCreds(), and Init().

String XrdSecProtocolpwd::FileSrvPuk = ""
staticprivate

Referenced by Init().

String XrdSecProtocolpwd::FileUser = ""
staticprivate

Referenced by Init(), and QueryUser().

struct sockaddr XrdSecProtocolpwd::hostaddr
private

Referenced by XrdSecProtocolpwd().

pwdHSVars* XrdSecProtocolpwd::hs
private
bool XrdSecProtocolpwd::KeepCreds = 0
staticprivate

Referenced by Authenticate(), CheckCreds(), and Init().

int XrdSecProtocolpwd::LifeCreds = 0
staticprivate

Referenced by Init(), and QueryUser().

XrdCryptoCipher* XrdSecProtocolpwd::loccip[XrdCryptoMax]
staticprivate
XrdSysLogger XrdSecProtocolpwd::Logger
staticprivate

Referenced by Init().

int XrdSecProtocolpwd::MaxFailures = 10
staticprivate

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::MaxPrompts = 3
staticprivate

Referenced by Authenticate(), Init(), and QueryCreds().

int XrdSecProtocolpwd::ncrypt = 0
staticprivate

Referenced by Authenticate(), Init(), and ParseCrypto().

int XrdSecProtocolpwd::options
private

Referenced by XrdSecProtocolpwd().

XrdSutPFile XrdSecProtocolpwd::PFAdmin
staticprivate

Referenced by Init(), and QueryUser().

XrdSutPFile XrdSecProtocolpwd::PFAlog
staticprivate

Referenced by Init(), QueryCreds(), and XrdSecProtocolpwd().

XrdSutPFile XrdSecProtocolpwd::PFSrvPuk
staticprivate

Referenced by Init(), and ParseClientInput().

XrdSysMutex XrdSecProtocolpwd::pwdContext
staticprivate

Referenced by Authenticate(), and getCredentials().

XrdCryptoCipher * XrdSecProtocolpwd::refcip = {0}
staticprivate

Referenced by Authenticate(), Init(), and ParseCrypto().

XrdOucTrace * XrdSecProtocolpwd::SecTrace = 0
staticprivate

Referenced by Init().

bool XrdSecProtocolpwd::Server = 1
staticprivate

Referenced by Init(), and XrdSecProtocolpwd().

String XrdSecProtocolpwd::SrvEmail = ""
staticprivate

Referenced by Init(), and QueryUser().

String XrdSecProtocolpwd::SrvID = ""
staticprivate

Referenced by Init().

bool XrdSecProtocolpwd::srvMode
private
bool XrdSecProtocolpwd::SysPwd = 0
staticprivate

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::TimeSkew = 300
staticprivate
int XrdSecProtocolpwd::UserPwd = 0
staticprivate

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::VeriClnt = 2
staticprivate

Referenced by Authenticate(), CheckTimeStamp(), and Init().

int XrdSecProtocolpwd::VeriSrv = 1
staticprivate

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