XrdSecpwdSrvAdmin.cc File Reference

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <pwd.h>
#include <dirent.h>
#include <XrdOuc/XrdOucString.hh>
#include <XrdSut/XrdSutAux.hh>
#include <XrdSut/XrdSutPFEntry.hh>
#include <XrdSut/XrdSutPFile.hh>
#include <XrdSut/XrdSutRndm.hh>
#include <XrdCrypto/XrdCryptoCipher.hh>
#include <XrdCrypto/XrdCryptoFactory.hh>

Go to the source code of this file.

Defines

#define NCRYPTMAX   10
#define PRT(x)   {cerr <<x <<endl;}
#define kMAXPWDATT   3
#define kMAXPUK   5

Enumerations

enum  kModes
enum  kActions

Functions

void Menu (int opt=0)
int ParseArguments (int argc, char **argv)
void ParseCrypto ()
bool CheckOption (XrdOucString opt, const char *ref, int &ival)
bool AddPassword (XrdSutPFEntry &ent, XrdOucString salt, XrdOucString &ranpwd, bool random, bool checkpw, bool &newpw)
bool AddPassword (XrdSutPFEntry &ent, bool &newpw, const char *pwd=0)
void SavePasswd (XrdOucString tag, XrdOucString pwd, bool onetime)
bool ReadPasswd (XrdOucString &tag, XrdOucString &pwd, int &st)
bool ReadPuk (int &npuk, XrdOucString *tpuk, XrdOucString *puk)
int GeneratePuk ()
bool SavePuk ()
bool ReadPuk ()
bool ExpPuk (const char *puk=0, bool read=1)
bool GetEntry (XrdSutPFile *ff, XrdOucString tag, XrdSutPFEntry &ent, bool &check)
bool AskConfirm (const char *msg1, bool defact, const char *msg2=0)
int LocateFactoryIndex (char *tag, int &id)
int main (int argc, char **argv)

Variables

const char * XrdSecpwdSrvAdminCVSID = "$Id: XrdSecpwdSrvAdmin.cc 30949 2009-11-02 16:37:58Z ganis $"
const char * gModesStr []
const char * gActionsStr []
int DebugON = 1
XrdOucString DirRef = "~/.xrd/"
XrdOucString AdminRef = "pwdadmin"
XrdOucString UserRef = "pwduser"
XrdOucString NetRcRef = "pwdnetrc"
XrdOucString SrvPukRef = "pwdsrvpuk"
XrdOucString GenPwdRef = "/genpwd/"
XrdOucString GenPukRef = "/genpuk/"
XrdOucString IDTag = "+++SrvID"
XrdOucString EmailTag = "+++SrvEmail"
XrdOucString HostTag = "+++SrvHost"
XrdOucString PukTag = "+++SrvPuk"
XrdOucString PwdFile = ""
XrdOucString PukFile = "/home/ganis/.xrd/genpuk/puk.07May2005-0849"
int Mode = kM_undef
int Action = kA_undef
int NoBackup = 1
XrdOucString NameTag = ""
XrdOucString CopyTag = ""
XrdOucString File = ""
XrdOucString Path = ""
XrdOucString Dir = ""
XrdOucString SrvID = ""
XrdOucString SrvName = ""
XrdOucString Email = ""
XrdOucString IterNum = ""
bool Backup = 1
bool DontAsk = 0
bool Force = 0
bool Passwd = 1
bool Change = 1
bool Random = 0
bool SavePw = 1
bool SetID = 0
bool SetEmail = 0
bool SetHost = 0
bool Create = 0
bool Confirm = 1
bool Import = 0
bool Hash = 1
bool ChangePuk = 0
bool ChangePwd = 0
bool ExportPuk = 0
XrdOucString DefCrypto = "ssl"
XrdOucString CryptList = ""
int ncrypt = 0
XrdOucString CryptMod [NCRYPTMAX] = {""}
XrdCryptoCipher ** RefCip = 0
XrdCryptoFactory ** CF = 0
XrdCryptoKDFun_t KDFun = 0
XrdCryptoKDFunLen_t KDFunLen = 0
int nHostPuk
XrdOucString TagHostPuk [kMAXPUK]
XrdOucString HostPuk [kMAXPUK]


Define Documentation

#define kMAXPUK   5

Definition at line 193 of file XrdSecpwdSrvAdmin.cc.

Referenced by ReadPuk().

#define kMAXPWDATT   3

Definition at line 191 of file XrdSecpwdSrvAdmin.cc.

Referenced by AddPassword().

#define NCRYPTMAX   10

Definition at line 158 of file XrdSecpwdSrvAdmin.cc.

Referenced by ParseCrypto().

#define PRT ( x   )     {cerr <<x <<endl;}

Definition at line 189 of file XrdSecpwdSrvAdmin.cc.


Enumeration Type Documentation

enum kActions

Definition at line 89 of file XrdSecpwdSrvAdmin.cc.

enum kModes

Definition at line 73 of file XrdSecpwdSrvAdmin.cc.


Function Documentation

bool AddPassword ( XrdSutPFEntry ent,
bool &  newpw,
const char *  pwd = 0 
)

Definition at line 1723 of file XrdSecpwdSrvAdmin.cc.

References XrdSutPFEntry::buf1, XrdOucString::c_str(), XrdOucString::find(), Hash, XrdOucString::insert(), kMAXPWDATT, XrdOucString::length(), PRT, XrdSutPFBuf::SetBuf(), and XrdSutGetPass().

bool AddPassword ( XrdSutPFEntry ent,
XrdOucString  salt,
XrdOucString ranpwd,
bool  random,
bool  checkpw,
bool &  newpw 
)

Definition at line 1593 of file XrdSecpwdSrvAdmin.cc.

References XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdOucString::c_str(), XrdOucString::find(), XrdSutRndm::GetString(), XrdOucString::hardreset(), XrdOucString::insert(), IterNum, KDFunLen, kMAXPWDATT, XrdSutPFBuf::len, XrdOucString::length(), PRT, SavePw, XrdSutPFBuf::SetBuf(), and XrdSutGetPass().

Referenced by main().

bool AskConfirm ( const char *  msg1,
bool  defact,
const char *  msg2 = 0 
)

Definition at line 1916 of file XrdSecpwdSrvAdmin.cc.

References XrdOucString::c_str(), Confirm, XrdOucString::insert(), XrdOucString::length(), XrdOucString::lower(), PRT, and XrdSutGetLine().

Referenced by main().

bool CheckOption ( XrdOucString  opt,
const char *  ref,
int &  ival 
)

bool ExpPuk ( const char *  puk = 0,
bool  read = 1 
)

Definition at line 2339 of file XrdSecpwdSrvAdmin.cc.

References buf, XrdOucString::c_str(), CF, close, Dir, dir(), GenPukRef, i, XrdCryptoFactory::ID(), ncrypt, open, opendir, PRT, XrdCryptoCipher::Public(), PukFile, readdir, ReadPuk(), RefCip, SrvID, SrvName, stat, and write.

Referenced by main().

int GeneratePuk (  ) 

Definition at line 2293 of file XrdSecpwdSrvAdmin.cc.

References CF, XrdCryptoFactory::Cipher(), CryptMod, XrdCryptoFactory::GetCryptoFactory(), i, ncrypt, PRT, and RefCip.

Referenced by main().

bool GetEntry ( XrdSutPFile ff,
XrdOucString  tag,
XrdSutPFEntry ent,
bool &  check 
)

Definition at line 1888 of file XrdSecpwdSrvAdmin.cc.

References XrdSutPFEntry::AsString(), XrdOucString::c_str(), XrdSutPFEntry::cnt, Force, XrdSutPFile::Name(), PRT, XrdSutPFile::ReadEntry(), and XrdSutPFEntry::SetName().

Referenced by G__G__Eve1_378_0_12(), G__G__Graf_200_0_16(), G__G__Gui1_232_0_40(), G__G__Gui1_232_0_42(), G__G__Gui2_246_0_24(), G__G__Hbook_166_0_17(), G__G__RooFitCore3_140_0_32(), TRefProxy::GetObject(), main(), and TEveTransSubEditor::SetModel().

int LocateFactoryIndex ( char *  tag,
int &  id 
)

Definition at line 2318 of file XrdSecpwdSrvAdmin.cc.

References XrdOucString::c_str(), CF, XrdOucString::erase(), j, ncrypt, PRT, and XrdOucString::rfind().

Referenced by main().

int main ( int  argc,
char **  argv 
)

Definition at line 197 of file XrdSecpwdSrvAdmin.cc.

References Action, AddPassword(), ans(), XrdCryptoCipher::AsBucket(), AskConfirm(), XrdSutPFEntry::AsString(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdSutPFEntry::buf3, XrdSutPFEntry::buf4, XrdSutBucket::buffer, c, XrdOucString::c_str(), CF, Change, ChangePuk, ChangePwd, XrdSutPFEntry::cnt, CopyTag, Create, CryptMod, DontAsk, Email, EmailTag, XrdOucString::erase(), ExportPuk, ExpPuk(), File, Force, GeneratePuk(), XrdCryptoFactory::GetCryptoFactory(), GetEntry(), XrdSutRndm::GetString(), gModesStr, Hash, HostPuk, HostTag, i, id, XrdCryptoFactory::ID(), IDTag, Import, XrdSutRndm::Init(), XrdOucString::insert(), IterNum, j, k, kA_add, kA_browse, kA_copy, kA_disable, kA_read, kA_remove, kA_trim, kA_update, XrdCryptoFactory::KDFun(), KDFun, XrdCryptoFactory::KDFunLen(), KDFunLen, kM_admin, kM_netrc, kM_srvpuk, kM_user, kPFE_allowed, kPFE_disabled, kPFE_ok, kPFE_onetime, kPFE_special, kPFEcreate, kPFErrNoFile, XrdSutPFBuf::len, length, XrdOucString::length(), LocateFactoryIndex(), Mode, XrdSutPFEntry::mtime, XrdSutPFEntry::name, NameTag, ncrypt, nHostPuk, ParseArguments(), ParseCrypto(), Passwd, PRT, PukFile, PukTag, passwd::pw_name, Random, ReadPasswd(), ReadPuk(), RefCip, XrdSutPFEntry::Reset(), SavePasswd(), SavePuk(), SavePw, XrdSutBucket::SetBuf(), XrdSutPFBuf::SetBuf(), SetEmail, SetHost, SetID, XrdSutPFEntry::SetName(), XrdSutBucket::size, sprintf(), SrvID, SrvName, XrdSutPFEntry::status, sutTRACE_Debug, TagHostPuk, XrdSutGetLine(), and XrdSutSetTrace().

void Menu ( int  opt = 0  ) 

Definition at line 959 of file XrdSecpwdSrvAdmin.cc.

References PRT.

int ParseArguments ( int  argc,
char **  argv 
)

void ParseCrypto (  ) 

Definition at line 1536 of file XrdSecpwdSrvAdmin.cc.

References CF, CryptList, CryptMod, DefCrypto, XrdCryptoFactory::GetCryptoFactory(), i, ncrypt, NCRYPTMAX, PRT, RefCip, and XrdOucString::tokenize().

Referenced by main().

bool ReadPasswd ( XrdOucString tag,
XrdOucString pwd,
int &  st 
)

Definition at line 1948 of file XrdSecpwdSrvAdmin.cc.

References XrdOucString::c_str(), fclose(), fopen, id, length, XrdOucString::length(), line, PRT, pwd(), PwdFile, s1, s2, and strtol().

Referenced by main().

bool ReadPuk (  ) 

Definition at line 2206 of file XrdSecpwdSrvAdmin.cc.

References XrdOucString::c_str(), CF, XrdCryptoFactory::Cipher(), close, i, XrdOucString::length(), ncrypt, open, PRT, PukFile, read, and RefCip.

bool ReadPuk ( int &  npuk,
XrdOucString tpuk,
XrdOucString puk 
)

Definition at line 2035 of file XrdSecpwdSrvAdmin.cc.

References XrdOucString::c_str(), fclose(), fopen, i, kMAXPUK, XrdOucString::length(), line, PRT, PukFile, s1, and s2.

Referenced by ExpPuk(), and main().

void SavePasswd ( XrdOucString  tag,
XrdOucString  pwd,
bool  onetime 
)

Definition at line 1797 of file XrdSecpwdSrvAdmin.cc.

References buf, XrdOucString::c_str(), CF, close, Dir, GenPwdRef, i, XrdCryptoFactory::ID(), XrdOucString::length(), ncrypt, open, PRT, XrdCryptoCipher::Public(), pwd(), PwdFile, RefCip, SrvID, SrvName, write, and XrdSutMkdir().

Referenced by main().

bool SavePuk (  ) 

Definition at line 2096 of file XrdSecpwdSrvAdmin.cc.

References XrdCryptoCipher::AsBucket(), buffer, XrdOucString::c_str(), CF, close, Dir, GenPukRef, i, XrdCryptoFactory::ID(), XrdOucString::length(), ncrypt, open, PRT, PukFile, RefCip, XrdSutBucket::size, tstr, write, XrdSutMkdir(), and XrdSutTimeString().

Referenced by main().


Variable Documentation

int Action = kA_undef

Definition at line 129 of file XrdSecpwdSrvAdmin.cc.

Referenced by G__G__Base1_134_0_10(), G__G__Base1_134_0_6(), G__G__Base1_134_0_7(), G__G__Base1_134_0_8(), G__G__Base1_134_0_9(), G__G__GPad_175_0_4(), and main().

XrdOucString AdminRef = "pwdadmin"

Definition at line 116 of file XrdSecpwdSrvAdmin.cc.

bool Backup = 1

Definition at line 140 of file XrdSecpwdSrvAdmin.cc.

XrdCryptoFactory** CF = 0

Definition at line 165 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), GeneratePuk(), XrdSecProtocolgsi::LoadCRL(), LocateFactoryIndex(), main(), ParseCrypto(), ReadPuk(), SavePasswd(), SavePuk(), and XrdSecProtocolgsi::VerifyCA().

bool Change = 1

Definition at line 144 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool ChangePuk = 0

Definition at line 154 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool ChangePwd = 0

Definition at line 155 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool Confirm = 1

Definition at line 151 of file XrdSecpwdSrvAdmin.cc.

Referenced by AskConfirm().

XrdOucString CopyTag = ""

Definition at line 132 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool Create = 0

Definition at line 150 of file XrdSecpwdSrvAdmin.cc.

Referenced by ClassImp(), Reflex::PluginService::Create(), G__G__Base1_159_0_5(), G__G__Base1_77_0_17(), G__G__GPad_175_0_3(), G__G__TMVA3_312_0_31(), ROOT::TCollectionProxyInfo::Generate(), Reflex::CFTGenerator< T >::Generate(), ROOT::TCollectionProxyInfo::Get(), main(), TMVA::MethodCompositeBase::ReadWeightsFromStream(), and TMVA::MethodCompositeBase::ReadWeightsFromXML().

XrdOucString CryptList = ""

Definition at line 161 of file XrdSecpwdSrvAdmin.cc.

Referenced by XrdSecProtocolpwd::Authenticate(), XrdSecProtocolgsi::Authenticate(), XrdSecProtocolgsi::getCredentials(), XrdSecProtocolpwd::getCredentials(), and ParseCrypto().

XrdOucString CryptMod[NCRYPTMAX] = {""}

Definition at line 163 of file XrdSecpwdSrvAdmin.cc.

Referenced by GeneratePuk(), main(), and ParseCrypto().

int DebugON = 1

Definition at line 114 of file XrdSecpwdSrvAdmin.cc.

XrdOucString DefCrypto = "ssl"

Definition at line 160 of file XrdSecpwdSrvAdmin.cc.

Referenced by ParseCrypto().

XrdOucString Dir = ""

Definition at line 135 of file XrdSecpwdSrvAdmin.cc.

Referenced by TMVA::MethodMLP::BFGSMinimize(), TMVA::MethodMLP::DerivDir(), ExpPuk(), G__G__Table_138_0_16(), TMVA::MethodMLP::LineSearch(), SavePasswd(), SavePuk(), TMVA::MethodMLP::SetDirWeights(), and TMVA::MethodMLP::SteepestDir().

XrdOucString DirRef = "~/.xrd/"

Definition at line 115 of file XrdSecpwdSrvAdmin.cc.

bool DontAsk = 0

Definition at line 141 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString Email = ""

Definition at line 138 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString EmailTag = "+++SrvEmail"

Definition at line 123 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool ExportPuk = 0

Definition at line 156 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString File = ""

Definition at line 133 of file XrdSecpwdSrvAdmin.cc.

Referenced by DGifCloseFile(), EGifCloseFile(), main(), XrdSecProtocolpwd::QueryUser(), and XrdFrmXfrQueue::Stopped().

bool Force = 0

Definition at line 142 of file XrdSecpwdSrvAdmin.cc.

Referenced by GetEntry(), and main().

const char* gActionsStr[]

Initial value:

 {
   "kA_undef",
   "kA_add",
   "kA_update",
   "kA_read",
   "kA_remove",
   "kA_disable",
   "kA_copy",
   "kA_trim",
   "kA_browse"
}

Definition at line 100 of file XrdSecpwdSrvAdmin.cc.

XrdOucString GenPukRef = "/genpuk/"

Definition at line 121 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), and SavePuk().

XrdOucString GenPwdRef = "/genpwd/"

Definition at line 120 of file XrdSecpwdSrvAdmin.cc.

Referenced by SavePasswd().

const char* gModesStr[]

Initial value:

 {
   "kM_undef",
   "kM_admin",
   "kM_user",
   "kM_netrc",
   "kM_srvpuk",
   "kM_help"
}

Definition at line 81 of file XrdSecpwdSrvAdmin.cc.

bool Hash = 1

Definition at line 153 of file XrdSecpwdSrvAdmin.cc.

Referenced by AddPassword(), G__G__Base2_10_0_32(), G__G__Base2_13_0_84(), G__G__Base2_173_0_12(), THashTable::GetHashValue(), and main().

XrdOucString HostPuk[kMAXPUK]

Definition at line 195 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString HostTag = "+++SrvHost"

Definition at line 124 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString IDTag = "+++SrvID"

Definition at line 122 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool Import = 0

Definition at line 152 of file XrdSecpwdSrvAdmin.cc.

Referenced by ClassImp(), G__G__Tree_152_0_21(), main(), rf102_dataimport(), rf401_importttreethx(), rf501_simultaneouspdf(), TestBasic102::testCode(), and TestBasic501::testCode().

XrdOucString IterNum = ""

Definition at line 139 of file XrdSecpwdSrvAdmin.cc.

Referenced by AddPassword(), and main().

XrdCryptoKDFun_t KDFun = 0

Definition at line 166 of file XrdSecpwdSrvAdmin.cc.

Referenced by XrdSecProtocolpwd::DoubleHash(), and main().

XrdCryptoKDFunLen_t KDFunLen = 0

Definition at line 167 of file XrdSecpwdSrvAdmin.cc.

Referenced by AddPassword(), XrdSecProtocolpwd::DoubleHash(), and main().

int Mode = kM_undef

Definition at line 128 of file XrdSecpwdSrvAdmin.cc.

XrdOucString NameTag = ""

Definition at line 131 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

int ncrypt = 0

Definition at line 162 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), GeneratePuk(), LocateFactoryIndex(), main(), ParseCrypto(), ReadPuk(), SavePasswd(), and SavePuk().

XrdOucString NetRcRef = "pwdnetrc"

Definition at line 118 of file XrdSecpwdSrvAdmin.cc.

int nHostPuk

Definition at line 194 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

int NoBackup = 1

Definition at line 130 of file XrdSecpwdSrvAdmin.cc.

bool Passwd = 1

Definition at line 143 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString Path = ""

Definition at line 134 of file XrdSecpwdSrvAdmin.cc.

Referenced by XrdFrmAdmin::AuditNameXA(), XrdFrmAdmin::AuditNameXL(), XrdFrmAdmin::AuditSpace(), XrdFrmAdmin::AuditUsage(), XrdCmsParser::Decode(), XrdFrmFileset::dirPath(), XrdXrootdProtocol::do_Locate(), XrdOfs::fsctl(), G__G__Table_138_0_38(), G__G__Table_138_0_39(), G__G__Table_139_0_39(), XrdFrmCID::Init(), XrdCmsCluster::Locate(), XrdOfsFile::open(), and XrdOssCache::Parse().

XrdOucString PukFile = "/home/ganis/.xrd/genpuk/puk.07May2005-0849"

Definition at line 127 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), main(), ReadPuk(), and SavePuk().

XrdOucString PukTag = "+++SrvPuk"

Definition at line 125 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString PwdFile = ""

Definition at line 126 of file XrdSecpwdSrvAdmin.cc.

Referenced by ReadPasswd(), and SavePasswd().

bool Random = 0

Definition at line 145 of file XrdSecpwdSrvAdmin.cc.

Referenced by G__G__TMVA2_436_0_2(), main(), UnuranRng< Random >::Rndm(), and UnuranRng< Random >::Seed().

XrdCryptoCipher** RefCip = 0

Definition at line 164 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), GeneratePuk(), main(), ParseCrypto(), ReadPuk(), SavePasswd(), and SavePuk().

bool SavePw = 1

Definition at line 146 of file XrdSecpwdSrvAdmin.cc.

Referenced by AddPassword(), and main().

bool SetEmail = 0

Definition at line 148 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

bool SetHost = 0

Definition at line 149 of file XrdSecpwdSrvAdmin.cc.

Referenced by G__G__Base3_171_0_25(), G__G__Base3_236_0_32(), G__G__RootAuth_126_0_34(), and main().

bool SetID = 0

Definition at line 147 of file XrdSecpwdSrvAdmin.cc.

Referenced by G__G__Net_250_0_24(), and main().

XrdOucString SrvID = ""

Definition at line 136 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), main(), and SavePasswd().

XrdOucString SrvName = ""

Definition at line 137 of file XrdSecpwdSrvAdmin.cc.

Referenced by ExpPuk(), main(), and SavePasswd().

XrdOucString SrvPukRef = "pwdsrvpuk"

Definition at line 119 of file XrdSecpwdSrvAdmin.cc.

XrdOucString TagHostPuk[kMAXPUK]

Definition at line 195 of file XrdSecpwdSrvAdmin.cc.

Referenced by main().

XrdOucString UserRef = "pwduser"

Definition at line 117 of file XrdSecpwdSrvAdmin.cc.

const char* XrdSecpwdSrvAdminCVSID = "$Id: XrdSecpwdSrvAdmin.cc 30949 2009-11-02 16:37:58Z ganis $"

Definition at line 3 of file XrdSecpwdSrvAdmin.cc.


Generated on Tue Jul 5 16:08:13 2011 for ROOT_528-00b_version by  doxygen 1.5.1