xrootd
Loading...
Searching...
No Matches
XrdSecProtocolpwd.hh
Go to the documentation of this file.
1/******************************************************************************/
2/* */
3/* X r d S e c P r o t o c o l p w d . h h */
4/* */
5/* (c) 2005 by the Board of Trustees of the Leland Stanford, Jr., University */
6/* Produced by Gerri Ganis for CERN */
7/* */
8/* This file is part of the XRootD software suite. */
9/* */
10/* XRootD is free software: you can redistribute it and/or modify it under */
11/* the terms of the GNU Lesser General Public License as published by the */
12/* Free Software Foundation, either version 3 of the License, or (at your */
13/* option) any later version. */
14/* */
15/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
16/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
17/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
18/* License for more details. */
19/* */
20/* You should have received a copy of the GNU Lesser General Public License */
21/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
22/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
23/* */
24/* The copyright holder's institutional names and contributor's names may not */
25/* be used to endorse or promote products derived from this software without */
26/* specific prior written permission of the institution or contributor. */
27/******************************************************************************/
28
30
35
38
40#include "XrdSut/XrdSutPFile.hh"
42#include "XrdSut/XrdSutRndm.hh"
43
47
48/******************************************************************************/
49/* D e f i n e s */
50/******************************************************************************/
51
53
54#define XrdSecPROTOIDENT "pwd"
55#define XrdSecPROTOIDLEN sizeof(XrdSecPROTOIDENT)
56#define XrdSecpwdVERSION 10100
57#define XrdSecNOIPCHK 0x0001
58#define XrdSecDEBUG 0x1000
59#define XrdCryptoMax 10
60
61#define kMAXBUFLEN 1024
62#define kMAXUSRLEN 9
63#define kMAXPWDLEN 64
64
65//
66// Message codes either returned by server or included in buffers
68 kpST_error = -1, // error occurred
69 kpST_ok = 0, // ok
70 kpST_more = 1 // need more info
71};
72
73//
74// Auto-reg modes
76 kpAR_none = 0, // autoreg disabled
77 kpAR_users = 1, // only for tags in password files (local, system's)
78 kpAR_all = 2 // for all tags
79};
80
81//
82// Client update autologin modes
84 kpUP_none = 0, // no update
85 kpUP_remove = 1, // remove obsolete entries only
86 kpUP_all = 2 // remove obsolete entries and register new valid info
87};
88
89//
90// Creds input type
92 kpCI_undef = -1, // undefined
93 kpCI_prompt = 0, // from prompt
94 kpCI_exact = 1, // from FileNetRc, exact tag
95 kpCI_wildcard = 2 // from FileNetRc, wildcard tag
96};
97
98//
99// Creds type (for prompt)
101 kpCT_undef = -1, // undefined
102 kpCT_normal = 0, // confirmed credentials
103 kpCT_onetime = 1, // one-time credentials
104 kpCT_old = 2, // old credentials to be changed
105 kpCT_new = 3, // new credentials to be confirmed
106 kpCT_newagain = 4, // new credentials again for confirmation
107 kpCT_autoreg = 5, // autoreg: new creds to be confirmed
108 kpCT_ar_again = 6, // autoreg: new creds again for confirmation
109 kpCT_crypt = 7, // standard crypt hash
110 kpCT_afs = 8, // AFS plain password
111 kpCT_afsenc = 9 // AFS encrypted password
113
114//
115// Creds actions
117 kpCA_undef = -1, // undefined
118 kpCA_check = 0, // normal check of credentials
119 kpCA_checkold = 1, // check current creds before asking for new ones
120 kpCA_cache = 2, // cache received (new) credentials
121 kpCA_checkcache = 3 // check cached credentials and save them, if ok
123
124// Client steps
127 kXPC_normal = 1000, // 1000: standard packet
128 kXPC_verifysrv, // 1001: request for server verification
129 kXPC_signedrtag, // 1002: signed rtag (after server request for verification)
130 kXPC_creds, // 1003: credentials packet
131 kXPC_autoreg, // 1004: query for autoregistration
132 kXPC_failureack, // 1005: failure acknowledgement
133 kXPC_reserved //
135
136// Server steps
139 kXPS_init = 2000, // 2000: fake code used the first time
140 kXPS_credsreq, // 2001: request for credentials
141 kXPS_rtag, // 2002: rndm tag to be signed (strong verification)
142 kXPS_signedrtag, // 2003: signed rtag (after client request for verification)
143 kXPS_newpuk, // 2004: new public part for session ciphers
144 kXPS_puk, // 2005: public part for session ciphers (after autoreg)
145 kXPS_failure, // 2006: signal failure to client to drop invalid cached info
148
149// Error codes
190
191// Structuring the status word
192typedef struct {
193 char ctype;
194 char action;
195 short options;
197
198#define REL1(x) { if (x) delete x; }
199#define REL2(x,y) { if (x) delete x; if (y) delete y; }
200#define REL3(x,y,z) { if (x) delete x; if (y) delete y; if (z) delete z; }
201#if 0
202#ifndef NODEBUG
203#define PRINT(y) {{SecTrace->Beg(epname); std::cerr <<y; SecTrace->End();}}
204#else
205#define PRINT(y) { }
206#endif
207#endif
208#define SafeDelete(x) { if (x) delete x ; x = 0; }
209#define SafeDelArray(x) { if (x) delete [] x ; x = 0; }
210
211//
212// This a small class to set the relevant options in one go
213//
215public:
216 short debug; // [cs] debug flag
217 short mode; // [cs] 'c' or 's'
218 short areg; // [cs] auto-registration opt (s); update-autolog-info opt (c)
219 short upwd; // [s] check / do-not-check pwd file in user's $HOME
220 short alog; // [c] check / do-not-check user's autologin info
221 short verisrv; // [c] verify / do-not-verify server ownership of srvpuk
222 short vericlnt; // [s] level of verification client ownership of clntpuk
223 short syspwd; // [s] check / do-not-check system pwd (requires privileges)
224 int lifecreds; // [s] lifetime in seconds of credentials
225 int maxprompts; // [c] max number of empty prompts
226 int maxfailures; // [s] max passwd failures before blocking
227 char *clist; // [s] list of crypto modules ["ssl"]
228 char *dir; // [s] directory with admin pwd files [$HOME/.xrd]
229 char *udir; // [s] users's sub-directory with pwd files [$HOME/.xrd]
230 char *cpass; // [s] users's crypt hash pwd file [$HOME/.xrootdpass]
231 char *alogfile; // [c] autologin file [$HOME/.xrd/pwdnetrc]
232 char *srvpuk; // [c] file with server puks [$HOME/.xrd/pwdsrvpuk]
233 short keepcreds; // [s] keep / do-not-keep client credentials
234 char *expcreds; // [s] (template for) file with exported creds
235 int expfmt; // [s] formta for exported credentials
236
237 pwdOptions() { debug = -1; mode = 's'; areg = -1; upwd = -1; alog = -1;
238 verisrv = -1; vericlnt = -1;
239 syspwd = -1; lifecreds = -1; maxprompts = -1; maxfailures = -1;
240 clist = 0; dir = 0; udir = 0; cpass = 0;
241 alogfile = 0; srvpuk = 0; keepcreds = 0; expcreds = 0; expfmt = 0;}
242 virtual ~pwdOptions() { } // Cleanup inside XrdSecProtocolpwdInit
243 void Print(XrdOucTrace *t); // Print summary of pwd option status
244};
245
247public:
248 int Iter; // iteration number
249 int TimeStamp; // Time of last call
250 String CryptoMod; // crypto module in use
251 String User; // remote username
252 String Tag; // tag for credentials
253 int RemVers; // Version run by remote counterpart
254 XrdCryptoFactory *CF; // crypto factory
255 XrdCryptoCipher *Hcip; // handshake cipher
256 XrdCryptoCipher *Rcip; // reference cipher
257 String ID; // Handshake ID (dummy for clients)
258 XrdSutPFEntry *Cref; // Cache reference
259 XrdSutPFEntry *Pent; // Pointer to relevant file entry
260 bool RtagOK; // Rndm tag checked / not checked
261 pwdStatus_t Status; // Some state flags
262 bool Tty; // Terminal attached / not attached
263 int Step; // Current step
264 int LastStep; // Step required at previous iteration
265 String ErrMsg; // Last error message
266 int SysPwd; // 0 = no, 1 = Unix sys pwd, 2 = AFS pwd
267 String AFScell; // AFS cell if it makes sense
268 XrdSutBuffer *Parms; // Buffer with server parms on first iteration
269
270 pwdHSVars() { Iter = 0; TimeStamp = -1; CryptoMod = ""; User = ""; Tag = "";
271 RemVers = -1; CF = 0; Hcip = 0; Rcip = 0;
272 ID = ""; Cref = 0; Pent = 0; RtagOK = 0; Tty = 0;
273 Step = 0; LastStep = 0; ErrMsg = "";
274 SysPwd = 0; AFScell = "";
275 Status.ctype = 0; Status.action = 0; Status.options = 0; Parms = 0;}
276
278};
279
280
281/******************************************************************************/
282/* X r d S e c P r o t o c o l p w d C l a s s */
283/******************************************************************************/
284
286{
287public:
289 XrdSecParameters **parms,
290 XrdOucErrInfo *einfo=0);
291
293 XrdOucErrInfo *einfo=0);
294
295 XrdSecProtocolpwd(int opts, const char *hname,
296 XrdNetAddrInfo &endPoint,
297 const char *parms = 0);
298 virtual ~XrdSecProtocolpwd() {} // Delete() does it all
299
300 // Initialization methods
301 static char *Init(pwdOptions o, XrdOucErrInfo *erp);
302
303 void Delete();
304
305 static void PrintTimeStat();
306
307 // Enable tracing
309
310private:
311
312 // Static members initialized at startup
315 static String FileExpCreds; // (Template for) file with exported creds [S]
319 static String SrvID;
323 static XrdSutPFile PFAdmin; // Admin file [S]
324 static XrdSutPFile PFAlog; // Autologin file [CS]
325 static XrdSutPFile PFSrvPuk; // File with server public keys [CS]
326 //
327 // Crypto related info
328 static int ncrypt; // Number of factories
329 static int cryptID[XrdCryptoMax]; // their IDs
330 static String cryptName[XrdCryptoMax]; // their names
331 static XrdCryptoCipher *loccip[XrdCryptoMax]; // local ciphers
332 static XrdCryptoCipher *refcip[XrdCryptoMax]; // ref for session ciphers
333 //
334 // Caches for info files
335 static XrdSutPFCache cacheAdmin; // Admin file
336 static XrdSutPFCache cacheSrvPuk; // SrvPuk file
337 static XrdSutPFCache cacheUser; // User files
338 static XrdSutPFCache cacheAlog; // Autologin file
339 //
340 // Running options / settings
341 static int Debug; // [CS] Debug level
342 static bool Server; // [CS] If server mode
343 static int UserPwd; // [S] Check passwd file in user's <xrdsecdir>
344 static bool SysPwd; // [S] Check system passwd file if allowed
345 static int VeriClnt; // [S] Client verification level
346 static int VeriSrv; // [C] Server verification level
347 static int AutoReg; // [S] Autoreg mode
348 static int LifeCreds; // [S] if > 0, credential lifetime in secs
349 static int MaxPrompts; // [C] Repeating prompt
350 static int MaxFailures; // [S] Max passwd failures before blocking
351 static int AutoLogin; // [C] do-not-check/check/update autolog info
352 static int TimeSkew; // [CS] Allowed skew in secs for time stamps
353 static bool KeepCreds; // [S] Keep / Do-Not-Keep client creds
354 static int FmtExpCreds; // [S] Format for the exported credentials
355 //
356 // for error logging and tracing
360
361 // Information local to this instance
364 char CName[256]; // Client-name
365 bool srvMode; // TRUE if server mode
366
367 // Handshake local info
369
370 // Acquired credentials (server side)
372
373 // Parsing received buffers
375 String &emsg);
377 String &cmsg);
379
380 // Error functions
381 static void ErrF(XrdOucErrInfo *einfo, kXR_int32 ecode,
382 const char *msg1, const char *msg2 = 0,
383 const char *msg3 = 0);
386 kXR_int32 ecode, const char *msg1 = 0,
387 const char *msg2 = 0, const char *msg3 = 0);
389 XrdSutBuffer *b2, XrdSutBuffer *b3,
390 kXR_int32 ecode, const char *msg1 = 0,
391 const char *msg2 = 0, const char *msg3 = 0);
392
393 // Query methods
394 XrdSutBucket *QueryCreds(XrdSutBuffer *bm, bool netrc, int &status);
395 int QueryUser(int &status, String &cmsg);
396 int QueryCrypt(String &fn, String &pwhash);
397 int QueryNetRc(String host, String &passwd, int &status);
398
399 // Check credentials
400 bool CheckCreds(XrdSutBucket *creds, int credtype);
401 bool CheckCredsAFS(XrdSutBucket *creds, int ctype);
402
403 // Check Time stamp
404 bool CheckTimeStamp(XrdSutBuffer *b, int skew, String &emsg);
405
406 // Check random challenge
407 bool CheckRtag(XrdSutBuffer *bm, String &emsg);
408
409 // Saving / Updating
413
414 // Auxilliary methods
415 int GetUserHost(String &usr, String &host);
416 int AddSerialized(char opt, kXR_int32 step, String ID,
417 XrdSutBuffer *bls, XrdSutBuffer *buf,
418 kXR_int32 type, XrdCryptoCipher *cip);
420 XrdSutBucket *s1, XrdSutBucket *s2 = 0,
421 const char *tag = 0);
422};
int kXR_int32
Definition XPtypes.hh:89
#define SafeDelete(x)
Definition XrdSecProtocolpwd.hh:208
kpwdUpdate
Definition XrdSecProtocolpwd.hh:83
@ kpUP_remove
Definition XrdSecProtocolpwd.hh:85
@ kpUP_all
Definition XrdSecProtocolpwd.hh:86
@ kpUP_none
Definition XrdSecProtocolpwd.hh:84
kpwdCredsInput
Definition XrdSecProtocolpwd.hh:91
@ kpCI_prompt
Definition XrdSecProtocolpwd.hh:93
@ kpCI_exact
Definition XrdSecProtocolpwd.hh:94
@ kpCI_undef
Definition XrdSecProtocolpwd.hh:92
@ kpCI_wildcard
Definition XrdSecProtocolpwd.hh:95
kpwdAutoreg
Definition XrdSecProtocolpwd.hh:75
@ kpAR_none
Definition XrdSecProtocolpwd.hh:76
@ kpAR_all
Definition XrdSecProtocolpwd.hh:78
@ kpAR_users
Definition XrdSecProtocolpwd.hh:77
kpwdErrors
Definition XrdSecProtocolpwd.hh:150
@ kPWErrParseBuffer
Definition XrdSecProtocolpwd.hh:151
@ kPWErrBadOpt
Definition XrdSecProtocolpwd.hh:176
@ kPWErrMarshal
Definition XrdSecProtocolpwd.hh:177
@ kPWErrNoBuffer
Definition XrdSecProtocolpwd.hh:181
@ kPWErrBadCreds
Definition XrdSecProtocolpwd.hh:187
@ kPWErrBadPasswd
Definition XrdSecProtocolpwd.hh:171
@ kPWErrSaveCreds
Definition XrdSecProtocolpwd.hh:179
@ kPWErrEncRndmTag
Definition XrdSecProtocolpwd.hh:165
@ kPWErrNoSessID
Definition XrdSecProtocolpwd.hh:174
@ kPWErrExportPuK
Definition XrdSecProtocolpwd.hh:164
@ kPWErrNoCipher
Definition XrdSecProtocolpwd.hh:168
@ kPWErrNoSalt
Definition XrdSecProtocolpwd.hh:180
@ kPWErrBadCache
Definition XrdSecProtocolpwd.hh:172
@ kPWErrUnmarshal
Definition XrdSecProtocolpwd.hh:178
@ kPWErrSerialBuffer
Definition XrdSecProtocolpwd.hh:162
@ kPWErrBadUser
Definition XrdSecProtocolpwd.hh:158
@ kPWErrQueryCreds
Definition XrdSecProtocolpwd.hh:169
@ kPWErrNoUserHost
Definition XrdSecProtocolpwd.hh:155
@ kPWErrInit
Definition XrdSecProtocolpwd.hh:186
@ kPWErrNoPublic
Definition XrdSecProtocolpwd.hh:183
@ kPWErrBadSessID
Definition XrdSecProtocolpwd.hh:175
@ kPWErrNoCreds
Definition XrdSecProtocolpwd.hh:170
@ kPWErrDuplicateBucket
Definition XrdSecProtocolpwd.hh:160
@ kPWErrBadProtocol
Definition XrdSecProtocolpwd.hh:154
@ kPWErrNoUser
Definition XrdSecProtocolpwd.hh:156
@ kPWErrCreateBucket
Definition XrdSecProtocolpwd.hh:159
@ kPWErrFinCipher
Definition XrdSecProtocolpwd.hh:185
@ kPWErrLoadCrypto
Definition XrdSecProtocolpwd.hh:153
@ kPWErrRefCipher
Definition XrdSecProtocolpwd.hh:182
@ kPWErrBadRndmTag
Definition XrdSecProtocolpwd.hh:166
@ kPWErrDecodeBuffer
Definition XrdSecProtocolpwd.hh:152
@ kPWErrNoCache
Definition XrdSecProtocolpwd.hh:173
@ kPWErrGenCipher
Definition XrdSecProtocolpwd.hh:163
@ kPWErrNoRndmTag
Definition XrdSecProtocolpwd.hh:167
@ kPWErrError
Definition XrdSecProtocolpwd.hh:188
@ kPWErrCreateBuffer
Definition XrdSecProtocolpwd.hh:161
@ kPWErrAddBucket
Definition XrdSecProtocolpwd.hh:184
@ kPWErrNoHost
Definition XrdSecProtocolpwd.hh:157
kpwdStatus
Definition XrdSecProtocolpwd.hh:67
@ kpST_ok
Definition XrdSecProtocolpwd.hh:69
@ kpST_more
Definition XrdSecProtocolpwd.hh:70
@ kpST_error
Definition XrdSecProtocolpwd.hh:68
XrdOucString String
Definition XrdSecProtocolpwd.hh:52
kpwdClientSteps
Definition XrdSecProtocolpwd.hh:125
@ kXPC_failureack
Definition XrdSecProtocolpwd.hh:132
@ kXPC_autoreg
Definition XrdSecProtocolpwd.hh:131
@ kXPC_reserved
Definition XrdSecProtocolpwd.hh:133
@ kXPC_signedrtag
Definition XrdSecProtocolpwd.hh:129
@ kXPC_normal
Definition XrdSecProtocolpwd.hh:127
@ kXPC_creds
Definition XrdSecProtocolpwd.hh:130
@ kXPC_verifysrv
Definition XrdSecProtocolpwd.hh:128
@ kXPC_none
Definition XrdSecProtocolpwd.hh:126
kpwdCredsActions
Definition XrdSecProtocolpwd.hh:116
@ kpCA_cache
Definition XrdSecProtocolpwd.hh:120
@ kpCA_undef
Definition XrdSecProtocolpwd.hh:117
@ kpCA_checkold
Definition XrdSecProtocolpwd.hh:119
@ kpCA_check
Definition XrdSecProtocolpwd.hh:118
@ kpCA_checkcache
Definition XrdSecProtocolpwd.hh:121
#define XrdCryptoMax
Definition XrdSecProtocolpwd.hh:59
kpwdCredType
Definition XrdSecProtocolpwd.hh:100
@ kpCT_afs
Definition XrdSecProtocolpwd.hh:110
@ kpCT_old
Definition XrdSecProtocolpwd.hh:104
@ kpCT_autoreg
Definition XrdSecProtocolpwd.hh:107
@ kpCT_onetime
Definition XrdSecProtocolpwd.hh:103
@ kpCT_newagain
Definition XrdSecProtocolpwd.hh:106
@ kpCT_normal
Definition XrdSecProtocolpwd.hh:102
@ kpCT_new
Definition XrdSecProtocolpwd.hh:105
@ kpCT_crypt
Definition XrdSecProtocolpwd.hh:109
@ kpCT_undef
Definition XrdSecProtocolpwd.hh:101
@ kpCT_afsenc
Definition XrdSecProtocolpwd.hh:111
@ kpCT_ar_again
Definition XrdSecProtocolpwd.hh:108
kpwdServerSteps
Definition XrdSecProtocolpwd.hh:137
@ kXPS_puk
Definition XrdSecProtocolpwd.hh:144
@ kXPS_credsreq
Definition XrdSecProtocolpwd.hh:140
@ kXPS_failure
Definition XrdSecProtocolpwd.hh:145
@ kXPS_reserved
Definition XrdSecProtocolpwd.hh:146
@ kXPS_none
Definition XrdSecProtocolpwd.hh:138
@ kXPS_init
Definition XrdSecProtocolpwd.hh:139
@ kXPS_signedrtag
Definition XrdSecProtocolpwd.hh:142
@ kXPS_newpuk
Definition XrdSecProtocolpwd.hh:143
@ kXPS_rtag
Definition XrdSecProtocolpwd.hh:141
Definition XrdCryptoCipher.hh:48
Definition XrdCryptoFactory.hh:122
Definition XrdNetAddrInfo.hh:54
Definition XrdOucErrInfo.hh:101
Definition XrdOucString.hh:254
Definition XrdOucTrace.hh:36
Definition XrdSecInterface.hh:131
Definition XrdSecProtocolpwd.hh:286
static XrdSutPFCache cacheAlog
Definition XrdSecProtocolpwd.hh:338
static XrdSutPFCache cacheAdmin
Definition XrdSecProtocolpwd.hh:335
int ParseClientInput(XrdSutBuffer *br, XrdSutBuffer **bm, String &emsg)
static String DefError
Definition XrdSecProtocolpwd.hh:322
static XrdSutPFCache cacheSrvPuk
Definition XrdSecProtocolpwd.hh:336
int ExportCreds(XrdSutBucket *creds)
static int ncrypt
Definition XrdSecProtocolpwd.hh:328
static XrdCryptoCipher * refcip[XrdCryptoMax]
Definition XrdSecProtocolpwd.hh:332
static XrdSutPFCache cacheUser
Definition XrdSecProtocolpwd.hh:337
static int TimeSkew
Definition XrdSecProtocolpwd.hh:352
bool CheckCreds(XrdSutBucket *creds, int credtype)
static XrdSutPFile PFAdmin
Definition XrdSecProtocolpwd.hh:323
static XrdSutPFile PFSrvPuk
Definition XrdSecProtocolpwd.hh:325
static XrdSysLogger Logger
Definition XrdSecProtocolpwd.hh:357
int AddSerialized(char opt, kXR_int32 step, String ID, XrdSutBuffer *bls, XrdSutBuffer *buf, kXR_int32 type, XrdCryptoCipher *cip)
bool CheckCredsAFS(XrdSutBucket *creds, int ctype)
bool srvMode
Definition XrdSecProtocolpwd.hh:365
static char * Init(pwdOptions o, XrdOucErrInfo *erp)
XrdSecProtocolpwd(int opts, const char *hname, XrdNetAddrInfo &endPoint, const char *parms=0)
static XrdSysError eDest
Definition XrdSecProtocolpwd.hh:358
static String FileExpCreds
Definition XrdSecProtocolpwd.hh:315
static bool SysPwd
Definition XrdSecProtocolpwd.hh:344
virtual ~XrdSecProtocolpwd()
Definition XrdSecProtocolpwd.hh:298
static XrdCryptoCipher * loccip[XrdCryptoMax]
Definition XrdSecProtocolpwd.hh:331
int QueryCrypt(String &fn, String &pwhash)
static int AutoLogin
Definition XrdSecProtocolpwd.hh:351
static bool Server
Definition XrdSecProtocolpwd.hh:342
static void PrintTimeStat()
static int LifeCreds
Definition XrdSecProtocolpwd.hh:348
static int cryptID[XrdCryptoMax]
Definition XrdSecProtocolpwd.hh:329
static String SrvID
Definition XrdSecProtocolpwd.hh:319
static XrdOucTrace * PWDTrace
Definition XrdSecProtocolpwd.hh:359
static int FmtExpCreds
Definition XrdSecProtocolpwd.hh:354
static XrdSysMutex pwdContext
Definition XrdSecProtocolpwd.hh:313
static String FileUser
Definition XrdSecProtocolpwd.hh:316
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)
bool CheckTimeStamp(XrdSutBuffer *b, int skew, String &emsg)
char CName[256]
Definition XrdSecProtocolpwd.hh:364
static int UserPwd
Definition XrdSecProtocolpwd.hh:343
int GetUserHost(String &usr, String &host)
static String FileSrvPuk
Definition XrdSecProtocolpwd.hh:318
int QueryUser(int &status, String &cmsg)
static void ErrF(XrdOucErrInfo *einfo, kXR_int32 ecode, const char *msg1, const char *msg2=0, const char *msg3=0)
int ParseServerInput(XrdSutBuffer *br, XrdSutBuffer **bm, String &cmsg)
XrdSecCredentials * ErrC(XrdOucErrInfo *einfo, XrdSutBuffer *b1, XrdSutBuffer *b2, XrdSutBuffer *b3, kXR_int32 ecode, const char *msg1=0, const char *msg2=0, const char *msg3=0)
void Delete()
Delete the protocol object. DO NOT use C++ delete() on this object.
XrdNetAddrInfo epAddr
Definition XrdSecProtocolpwd.hh:362
int Authenticate(XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0)
pwdHSVars * hs
Definition XrdSecProtocolpwd.hh:368
XrdSecCredentials * clientCreds
Definition XrdSecProtocolpwd.hh:371
static bool KeepCreds
Definition XrdSecProtocolpwd.hh:353
bool CheckRtag(XrdSutBuffer *bm, String &emsg)
int SaveCreds(XrdSutBucket *creds)
static int MaxPrompts
Definition XrdSecProtocolpwd.hh:349
int QueryNetRc(String host, String &passwd, int &status)
int ParseCrypto(XrdSutBuffer *buf)
static String DefCrypto
Definition XrdSecProtocolpwd.hh:321
static int VeriClnt
Definition XrdSecProtocolpwd.hh:345
static XrdOucTrace * EnableTracing()
static int Debug
Definition XrdSecProtocolpwd.hh:341
XrdSecCredentials * getCredentials(XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0)
static String cryptName[XrdCryptoMax]
Definition XrdSecProtocolpwd.hh:330
static int VeriSrv
Definition XrdSecProtocolpwd.hh:346
static String SrvEmail
Definition XrdSecProtocolpwd.hh:320
static int AutoReg
Definition XrdSecProtocolpwd.hh:347
int DoubleHash(XrdCryptoFactory *cf, XrdSutBucket *bck, XrdSutBucket *s1, XrdSutBucket *s2=0, const char *tag=0)
static int MaxFailures
Definition XrdSecProtocolpwd.hh:350
static XrdSutPFile PFAlog
Definition XrdSecProtocolpwd.hh:324
XrdSutBucket * QueryCreds(XrdSutBuffer *bm, bool netrc, int &status)
static String FileCrypt
Definition XrdSecProtocolpwd.hh:317
int options
Definition XrdSecProtocolpwd.hh:363
static String FileAdmin
Definition XrdSecProtocolpwd.hh:314
Definition XrdSutBucket.hh:44
Definition XrdSutBuffer.hh:43
Definition XrdSutPFCache.hh:72
Definition XrdSutPFEntry.hh:78
Definition XrdSutPFile.hh:121
Definition XrdSysError.hh:90
Definition XrdSysLogger.hh:53
Definition XrdSysPthread.hh:165
Definition XrdSecProtocolpwd.hh:246
int TimeStamp
Definition XrdSecProtocolpwd.hh:249
int LastStep
Definition XrdSecProtocolpwd.hh:264
XrdCryptoCipher * Hcip
Definition XrdSecProtocolpwd.hh:255
XrdCryptoCipher * Rcip
Definition XrdSecProtocolpwd.hh:256
int Iter
Definition XrdSecProtocolpwd.hh:248
pwdHSVars()
Definition XrdSecProtocolpwd.hh:270
XrdCryptoFactory * CF
Definition XrdSecProtocolpwd.hh:254
int Step
Definition XrdSecProtocolpwd.hh:263
pwdStatus_t Status
Definition XrdSecProtocolpwd.hh:261
~pwdHSVars()
Definition XrdSecProtocolpwd.hh:277
XrdSutPFEntry * Pent
Definition XrdSecProtocolpwd.hh:259
String ID
Definition XrdSecProtocolpwd.hh:257
XrdSutPFEntry * Cref
Definition XrdSecProtocolpwd.hh:258
bool Tty
Definition XrdSecProtocolpwd.hh:262
String ErrMsg
Definition XrdSecProtocolpwd.hh:265
bool RtagOK
Definition XrdSecProtocolpwd.hh:260
int RemVers
Definition XrdSecProtocolpwd.hh:253
int SysPwd
Definition XrdSecProtocolpwd.hh:266
String CryptoMod
Definition XrdSecProtocolpwd.hh:250
XrdSutBuffer * Parms
Definition XrdSecProtocolpwd.hh:268
String User
Definition XrdSecProtocolpwd.hh:251
String AFScell
Definition XrdSecProtocolpwd.hh:267
String Tag
Definition XrdSecProtocolpwd.hh:252
Definition XrdSecProtocolpwd.hh:214
short mode
Definition XrdSecProtocolpwd.hh:217
int maxprompts
Definition XrdSecProtocolpwd.hh:225
char * srvpuk
Definition XrdSecProtocolpwd.hh:232
char * dir
Definition XrdSecProtocolpwd.hh:228
short areg
Definition XrdSecProtocolpwd.hh:218
short keepcreds
Definition XrdSecProtocolpwd.hh:233
char * clist
Definition XrdSecProtocolpwd.hh:227
char * expcreds
Definition XrdSecProtocolpwd.hh:234
short upwd
Definition XrdSecProtocolpwd.hh:219
short vericlnt
Definition XrdSecProtocolpwd.hh:222
int lifecreds
Definition XrdSecProtocolpwd.hh:224
short debug
Definition XrdSecProtocolpwd.hh:216
int maxfailures
Definition XrdSecProtocolpwd.hh:226
short verisrv
Definition XrdSecProtocolpwd.hh:221
char * udir
Definition XrdSecProtocolpwd.hh:229
pwdOptions()
Definition XrdSecProtocolpwd.hh:237
void Print(XrdOucTrace *t)
short alog
Definition XrdSecProtocolpwd.hh:220
virtual ~pwdOptions()
Definition XrdSecProtocolpwd.hh:242
int expfmt
Definition XrdSecProtocolpwd.hh:235
short syspwd
Definition XrdSecProtocolpwd.hh:223
char * alogfile
Definition XrdSecProtocolpwd.hh:231
char * cpass
Definition XrdSecProtocolpwd.hh:230
Generic structure to pass security information back and forth.
Definition XrdSecInterface.hh:51
Definition XrdSecProtocolpwd.hh:192
char ctype
Definition XrdSecProtocolpwd.hh:193
char action
Definition XrdSecProtocolpwd.hh:194
short options
Definition XrdSecProtocolpwd.hh:195