xrootd
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
XrdSecProtocolpwd Class Reference

#include <XrdSecProtocolpwd.hh>

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

List of all members.

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 ()

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

Constructor & Destructor Documentation

XrdSecProtocolpwd::XrdSecProtocolpwd ( int  opts,
const char *  hname,
const struct sockaddr *  ipadd,
const char *  parms = 0 
)
virtual XrdSecProtocolpwd::~XrdSecProtocolpwd ( ) [inline, virtual]

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, XrdSutPFEntry::name, XrdSecEntity::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 
) [static, private]
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(), Logger, XrdSysError::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 [static, private]
int XrdSecProtocolpwd::AutoReg = kpAR_none [static, private]

Referenced by Init(), and QueryUser().

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

Referenced by Init(), and ParseClientInput().

Referenced by Init(), and QueryUser().

char XrdSecProtocolpwd::CName[256] [private]

Referenced by Authenticate(), and XrdSecProtocolpwd().

int XrdSecProtocolpwd::cryptID = {0} [static, private]

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

String XrdSecProtocolpwd::cryptName = {0} [static, private]

Referenced by Init().

int XrdSecProtocolpwd::Debug = 0 [static, private]

Referenced by ErrF(), and Init().

String XrdSecProtocolpwd::DefCrypto = "ssl" [static, private]

Referenced by Init().

String XrdSecProtocolpwd::DefError = "insufficient credentials - contact " [static, private]

Referenced by Authenticate(), and Init().

Referenced by Init().

String XrdSecProtocolpwd::FileAdmin = "" [static, private]

Referenced by Init().

String XrdSecProtocolpwd::FileCrypt = "/.xrdpass" [static, private]

Referenced by Init(), and QueryUser().

String XrdSecProtocolpwd::FileExpCreds = "" [static, private]

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

String XrdSecProtocolpwd::FileSrvPuk = "" [static, private]

Referenced by Init().

String XrdSecProtocolpwd::FileUser = "" [static, private]

Referenced by Init(), and QueryUser().

struct sockaddr XrdSecProtocolpwd::hostaddr [private]

Referenced by XrdSecProtocolpwd().

bool XrdSecProtocolpwd::KeepCreds = 0 [static, private]

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

int XrdSecProtocolpwd::LifeCreds = 0 [static, private]

Referenced by Init(), and QueryUser().

XrdCryptoCipher* XrdSecProtocolpwd::loccip[XrdCryptoMax] [static, private]

Referenced by Init().

int XrdSecProtocolpwd::MaxFailures = 10 [static, private]

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::MaxPrompts = 3 [static, private]

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

int XrdSecProtocolpwd::ncrypt = 0 [static, private]

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

Referenced by XrdSecProtocolpwd().

Referenced by Init(), and QueryUser().

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

Referenced by Init(), and ParseClientInput().

Referenced by Authenticate(), and getCredentials().

XrdCryptoCipher * XrdSecProtocolpwd::refcip = {0} [static, private]

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

XrdOucTrace * XrdSecProtocolpwd::SecTrace = 0 [static, private]

Referenced by Init().

bool XrdSecProtocolpwd::Server = 1 [static, private]

Referenced by Init(), and XrdSecProtocolpwd().

String XrdSecProtocolpwd::SrvEmail = "" [static, private]

Referenced by Init(), and QueryUser().

String XrdSecProtocolpwd::SrvID = "" [static, private]

Referenced by Init().

bool XrdSecProtocolpwd::SysPwd = 0 [static, private]

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::TimeSkew = 300 [static, private]
int XrdSecProtocolpwd::UserPwd = 0 [static, private]

Referenced by Init(), and QueryUser().

int XrdSecProtocolpwd::VeriClnt = 2 [static, private]

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

int XrdSecProtocolpwd::VeriSrv = 1 [static, private]

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