|
xrootd
|
#include <XrdSecProtocolgsi.hh>


Public Member Functions | |
| int | Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0) |
| XrdSecCredentials * | getCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0) |
| XrdSecProtocolgsi (int opts, const char *hname, const struct sockaddr *ipadd, const char *parms=0) | |
| virtual | ~XrdSecProtocolgsi () |
| void | Delete () |
| Delete the protocol object. DO NOT use C++ delete() on this object. More... | |
| int | Encrypt (const char *inbuf, int inlen, XrdSecBuffer **outbuf) |
| int | Decrypt (const char *inbuf, int inlen, XrdSecBuffer **outbuf) |
| int | Sign (const char *inbuf, int inlen, XrdSecBuffer **outbuf) |
| int | Verify (const char *inbuf, int inlen, const char *sigbuf, int siglen) |
| int | getKey (char *kbuf=0, int klen=0) |
| int | setKey (char *kbuf, int klen) |
Public Member Functions inherited from XrdSecProtocol | |
| XrdSecProtocol (const char *pName) | |
| Constructor. More... | |
Static Public Member Functions | |
| static char * | Init (gsiOptions o, XrdOucErrInfo *erp) |
| static XrdOucTrace * | EnableTracing () |
Static Private Member Functions | |
| static int | GetCA (const char *cahash, XrdCryptoFactory *cryptof, gsiHSVars *hs=0) |
| static String | GetCApath (const char *cahash) |
| static bool | VerifyCA (int opt, X509Chain *cca, XrdCryptoFactory *cf) |
| static XrdSutPFEntry * | GetSrvCertEnt (XrdSutCacheRef &pfeRef, XrdCryptoFactory *cf, time_t timestamp, String &cal) |
| static XrdCryptoX509Crl * | LoadCRL (XrdCryptoX509 *xca, const char *sjhash, XrdCryptoFactory *CF, int dwld) |
| static int | QueryProxy (bool checkcache, XrdSutCache *cache, const char *tag, XrdCryptoFactory *cf, time_t timestamp, ProxyIn_t *pi, ProxyOut_t *po) |
| static int | InitProxy (ProxyIn_t *pi, X509Chain *ch=0, XrdCryptoRSA **key=0) |
| static void | ErrF (XrdOucErrInfo *einfo, kXR_int32 ecode, const char *msg1, const char *msg2=0, const char *msg3=0) |
| static int | LoadGMAP (int now) |
| static XrdSecgsiGMAP_t | LoadGMAPFun (const char *plugin, const char *parms) |
| static XrdSecgsiAuthz_t | LoadAuthzFun (const char *plugin, const char *parms, int &fmt) |
| static XrdSecgsiVOMS_t | LoadVOMSFun (const char *plugin, const char *parms, int &fmt) |
| static void | QueryGMAP (XrdCryptoX509Chain *chain, int now, String &name) |
Private Attributes | |
| int | options |
| struct sockaddr | hostaddr |
| XrdCryptoFactory * | sessionCF |
| XrdCryptoCipher * | sessionKey |
| XrdSutBucket * | bucketKey |
| XrdCryptoMsgDigest * | sessionMD |
| XrdCryptoRSA * | sessionKsig |
| XrdCryptoRSA * | sessionKver |
| X509Chain * | proxyChain |
| bool | srvMode |
| gsiHSVars * | hs |
Static Private Attributes | |
| static XrdSysMutex | gsiContext |
| static String | CAdir = "/etc/grid-security/certificates/" |
| static String | CRLdir = "/etc/grid-security/certificates/" |
| static String | DefCRLext = ".r0" |
| static String | SrvCert = "/etc/grid-security/xrd/xrdcert.pem" |
| static String | SrvKey = "/etc/grid-security/xrd/xrdkey.pem" |
| static String | UsrProxy |
| static String | UsrCert = "/.globus/usercert.pem" |
| static String | UsrKey = "/.globus/userkey.pem" |
| static String | PxyValid = "12:00" |
| static int | DepLength = 0 |
| static int | DefBits = 512 |
| static int | CACheck = 1 |
| static int | CRLCheck = 1 |
| static int | CRLDownload = 0 |
| static int | CRLRefresh = 86400 |
| static String | DefCrypto = "ssl" |
| static String | DefCipher = "aes-128-cbc:bf-cbc:des-ede3-cbc" |
| static String | DefMD = "sha1:md5" |
| static String | DefError = "invalid credentials " |
| static String | GMAPFile = "/etc/grid-security/grid-mapfile" |
| static int | GMAPOpt = 1 |
| static bool | GMAPuseDNname = 0 |
| static int | GMAPCacheTimeOut = -1 |
| static XrdSysPlugin * | GMAPPlugin = 0 |
| static XrdSecgsiGMAP_t | GMAPFun = 0 |
| static XrdSysPlugin * | AuthzPlugin = 0 |
| static XrdSecgsiAuthz_t | AuthzFun = 0 |
| static XrdSecgsiAuthzKey_t | AuthzKey = 0 |
| static int | AuthzCertFmt = -1 |
| static int | AuthzCacheTimeOut = 43200 |
| static int | PxyReqOpts = 0 |
| static int | AuthzPxyWhat = -1 |
| static int | AuthzPxyWhere = -1 |
| static String | SrvAllowedNames |
| static int | VOMSAttrOpt = 1 |
| static XrdSysPlugin * | VOMSPlugin = 0 |
| static XrdSecgsiVOMS_t | VOMSFun = 0 |
| static int | VOMSCertFmt = -1 |
| static int | MonInfoOpt = 0 |
| static bool | HashCompatibility = 1 |
| static int | ncrypt = 0 |
| static XrdCryptoFactory * | cryptF [XrdCryptoMax] = {0} |
| static int | cryptID [XrdCryptoMax] = {0} |
| static String | cryptName [XrdCryptoMax] = {0} |
| static XrdCryptoCipher * | refcip [XrdCryptoMax] = {0} |
| static XrdSutCache | cacheCA |
| static XrdSutCache | cacheCert |
| static XrdSutCache | cachePxy |
| static XrdSutCache | cacheGMAP |
| static XrdSutCache | cacheGMAPFun |
| static XrdSutCache | cacheAuthzFun |
| static GSICrlStack | stackCRL |
| static time_t | lastGMAPCheck = -1 |
| static XrdSysMutex | mutexGMAP |
| static int | Debug = 0 |
| static bool | Server = 1 |
| static int | TimeSkew = 300 |
| static XrdSysLogger | Logger |
| static XrdSysError | eDest |
| static XrdOucTrace * | GSITrace = 0 |
Friends | |
| class | gsiOptions |
| class | gsiHSVars |
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... | |
| XrdSecProtocolgsi::XrdSecProtocolgsi | ( | int | opts, |
| const char * | hname, | ||
| const struct sockaddr * | ipadd, | ||
| const char * | parms = 0 |
||
| ) |
References bucketKey, XrdOucString::c_str(), DEBUG, XrdSecProtocol::Entity, EPNAME, XrdSysDNS::getHostName(), gsiHSVars, XrdSecEntity::host, hostaddr, hs, XrdOucString::insert(), XrdOucString::length(), options, opts, gsiHSVars::Parms, PRINT, proxyChain, QTRACE, Server, sessionCF, sessionKey, sessionKsig, sessionKver, sessionMD, srvMode, gsiHSVars::TimeStamp, gsiHSVars::Tty, Version, XrdSecPROTOIDENT, and XrdSecPROTOIDLEN.
|
inlinevirtual |
|
private |
References XrdSutBuffer::AddBucket(), XrdSutPFEntry::buf1, XrdSutBucket::buffer, gsiHSVars::Cref, XrdCryptoCipher::Encrypt(), XrdCryptoRSA::EncryptPrivate(), EPNAME, XrdSutBuffer::GetBucket(), XrdSutRndm::GetRndmTag(), hs, kXRS_rtag, kXRS_signed_rtag, gsiHSVars::LastStep, XrdSutPFEntry::mtime, PRINT, XrdSutBuffer::Serialized(), sessionKsig, XrdSutPFBuf::SetBuf(), XrdSutBuffer::SetStep(), XrdSutBucket::size, gsiHSVars::TimeStamp, XrdSutBucket::type, XrdSutBucket::Update(), and XrdSutBuckStr().
Referenced by Authenticate(), and getCredentials().
|
virtual |
Authenticate a client.
| cred | Credentials supplied by the client. |
| parms | Place where the address of additional authentication data is to be placed for another autrhentication handshake. |
| einfo | The 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. |
Implements XrdSecProtocol.
References XrdSutCache::Add(), XrdSutBuffer::AddBucket(), AddSerialized(), AuthzCacheTimeOut, AuthzCertFmt, AuthzFun, AuthzKey, AuthzPxyWhat, AuthzPxyWhere, XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdSecBuffer::buffer, XrdOucString::c_str(), cacheAuthzFun, gsiHSVars::Cbck, gsiHSVars::Chain, CheckRtag(), ClientStepStr(), XrdSutPFEntry::cnt, CopyEntity(), XrdSecEntity::creds, XrdSecEntity::credslen, CryptList, XrdSutBuffer::Deactivate(), DEBUG, DefCipher, DefMD, XrdSutBuffer::Dump(), XrdCryptoX509Chain::EEChash(), XrdCryptoX509Chain::EECname(), XrdCryptoX509Chain::End(), XrdSecEntity::endorsements, XrdSecProtocol::Entity, EPNAME, XrdOucString::erase(), ErrS(), XrdCryptoX509::Export(), ExtractVOMS(), XrdOucString::find(), FreeEntity(), XrdSutCache::Get(), XrdSutBuffer::GetBucket(), XrdSutBuffer::GetProtocol(), XrdSutBuffer::GetStep(), GMAPOpt, GMAPuseDNname, XrdSecEntity::grps, hs, gsiHSVars::ID, kGSErrAddBucket, kGSErrBadOpt, kGSErrBadProtocol, kGSErrBadRndmTag, kGSErrDecodeBuffer, kGSErrError, kGSErrNoPublic, kGSErrParseBuffer, kGSErrSerialBuffer, kgST_error, kgST_more, kgST_ok, kPFE_disabled, kPFE_ok, kXGC_cert, kXGC_certreq, kXGC_sigpxy, kXGS_cert, kXGS_none, kXGS_pxyreq, kXRS_cipher_alg, kXRS_main, kXRS_md_alg, kXRS_message, kXRS_puk, kXRS_user, XrdSutPFBuf::len, XrdOucString::length(), XrdSecEntity::moninfo, MonInfoOpt, XrdSutPFEntry::mtime, XrdSecEntity::name, XrdCryptoX509::NotAfter(), NOTIFY, gsiHSVars::Options, ParseServerInput(), PRINT, XrdSecEntity::prot, XrdCryptoCipher::Public(), gsiHSVars::PxyChain, QTRACE, QueryGMAP(), gsiHSVars::Rcip, XrdSutCache::Rehash(), REL2, XrdSutCache::Remove(), gsiHSVars::RemVers, XrdOucString::replace(), XrdSecEntity::role, SafeDelArray, SafeDelete, SafeFree, XrdSutBuffer::Serialized(), ServerStepStr(), sessionKey, XrdSecBuffer::size, XrdSutPFEntry::status, STR_NPOS, XrdSecEntity::tident, gsiHSVars::TimeStamp, XrdOucString::tokenize(), XrdSutBucket::ToString(), XrdSutCacheRef::UnLock(), VOMSAttrOpt, VOMSCertFmt, VOMSFun, XrdSecEntity::vorg, XrdCryptosslX509ExportChain(), XrdSecPROTOIDENT, XrdSecPROTOIDLEN, and XrdSutBuckStr().
|
private |
References XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutBucket::buffer, gsiHSVars::Cref, XrdSutBuffer::Deactivate(), DEBUG, XrdCryptoRSA::DecryptPublic(), EPNAME, XrdSutBuffer::GetBucket(), hs, kXRS_signed_rtag, XrdSutPFBuf::len, gsiHSVars::RtagOK, SafeDelete, sessionKver, and XrdSutPFBuf::SetBuf().
Referenced by Authenticate(), and getCredentials().
|
private |
|
private |
References XrdSutBucket::buffer, XrdOucString::c_str(), gsiHSVars::Chain, XrdCryptoFactory::Cipher(), gsiHSVars::Cref, gsiHSVars::Crl, XrdSutBuffer::Deactivate(), emsg(), XrdCryptoX509Chain::End(), EPNAME, XrdSutBuffer::GetBucket(), hs, XrdCryptoRSA::IsValid(), XrdCryptoX509Chain::kNone, kOptsDelChn, kXRS_cipher_alg, kXRS_main, kXRS_md_alg, kXRS_puk, kXRS_x509, XrdCryptoX509Chain::LastError(), XrdOucString::length(), XrdCryptoFactory::MsgDigest(), XrdSutPFEntry::mtime, NOTIFY, gsiHSVars::Options, XrdCryptoX509::PKI(), PRINT, gsiHSVars::RemVers, XrdCryptoFactory::RSA(), SafeDelete, ServerCertNameOK(), sessionCF, sessionKey, sessionKver, sessionMD, XrdSutBucket::size, XrdSutPFEntry::status, XrdCryptoX509::Subject(), XrdCryptoFactory::SupportedCipher(), XrdCryptoFactory::SupportedMsgDigest(), TimeSkew, gsiHSVars::TimeStamp, XrdOucString::tokenize(), XrdSutBucket::ToString(), XrdSutBuffer::UpdateBucket(), XrdCryptosslgsiX509Chain::Verify(), and XrdCryptoFactory::X509ParseBucket().
Referenced by ParseClientInput().
|
private |
References XrdOucString::assign(), XrdOucString::c_str(), cachePxy, CAdir, ProxyOut_t::cbck, gsiHSVars::Cbck, ProxyOut_t::chain, gsiHSVars::Chain, gsiHSVars::Cref, DefBits, DefCrypto, DepLength, XrdSecProtocol::Entity, EPNAME, XrdOucString::erase(), XrdOucString::find(), XrdSutBuffer::GetOptions(), XrdSutBuffer::GetProtocol(), XrdSecEntity::grps, XrdSecEntity::host, hs, ProxyOut_t::ksig, XrdSecEntity::name, NOTIFY, gsiHSVars::Options, opts, ParseCAlist(), ParseCrypto(), PRINT, gsiHSVars::PxyChain, PxyReqOpts, PxyValid, QueryProxy(), gsiHSVars::RemVers, XrdCryptoFactory::RSA(), sessionCF, sessionKsig, XrdSutPFEntry::status, gsiHSVars::TimeStamp, UsrCert, UsrKey, UsrProxy, Version, XrdSecEntity::vorg, and XrdSutResolve().
Referenced by ParseClientInput().
|
private |
References XrdSutBucket::buffer, XrdCryptoCipher::Decrypt(), XrdCryptoX509Chain::End(), XrdCryptoX509::Export(), XrdCryptoRSA::ExportPrivate(), XrdSutBuffer::GetBucket(), hs, kOptsFwdPxy, kOptsSigReq, kXRS_main, kXRS_x509, kXRS_x509_req, gsiHSVars::Options, XrdCryptoX509::PKI(), gsiHSVars::PxyChain, gsiHSVars::RemVers, sessionCF, sessionKey, XrdCryptoX509Req::SetVersion(), XrdSutBucket::size, XrdCryptoFactory::X509Req(), and XrdSslgsiX509SignProxyReq().
Referenced by ParseClientInput().
|
private |
References XrdSecEntity::creds, XrdSecEntity::credslen, XrdSecEntity::endorsements, XrdSecEntity::grps, XrdSecEntity::host, XrdSecEntity::moninfo, XrdSecEntity::name, XrdSecEntity::role, and XrdSecEntity::vorg.
Referenced by Authenticate().
|
virtual |
Decrypt data in inbuff using the session key.
| inbuff | buffer holding data to be decrypted. |
| inlen | length of the data. |
| outbuff | place where a pointer to the decrypted data is placed. |
Reimplemented from XrdSecProtocol.
References DEBUG, XrdCryptoCipher::DecOutLength(), XrdCryptoCipher::Decrypt(), EPNAME, SafeFree, and sessionKey.
|
virtual |
Delete the protocol object. DO NOT use C++ delete() on this object.
Implements XrdSecProtocol.
References bucketKey, XrdSecEntity::creds, XrdSecEntity::credslen, XrdSecEntity::endorsements, XrdSecProtocol::Entity, XrdSecEntity::grps, XrdSecEntity::host, hs, XrdSecEntity::moninfo, XrdSecEntity::name, proxyChain, XrdSecEntity::role, SafeDelete, SafeFree, sessionKey, sessionKsig, sessionKver, sessionMD, and XrdSecEntity::vorg.
|
static |
References eDest, EPNAME, GSITrace, XrdSysError::logger(), and Logger.
Referenced by XrdSecProtocolgsiInit().
|
virtual |
Encrypt data in inbuff using the session key.
| inbuff | buffer holding data to be encrypted. |
| inlen | length of the data. |
| outbuff | place where a pointer to the encrypted data is placed. |
Reimplemented from XrdSecProtocol.
References DEBUG, XrdCryptoCipher::EncOutLength(), XrdCryptoCipher::Encrypt(), EPNAME, SafeFree, and sessionKey.
|
private |
Referenced by getCredentials().
|
staticprivate |
References DEBUG, Debug, EPNAME, gGSErrStr, kGSErrError, kGSErrParseBuffer, QTRACE, and XrdOucErrInfo::setErrInfo().
|
private |
References ErrF(), kgST_error, and REL3.
Referenced by Authenticate().
|
private |
References XrdOucString::assign(), XrdOucString::c_str(), DEBUG, XrdCryptoX509Chain::End(), XrdSecEntity::endorsements, EPNAME, XrdOucString::erase(), XrdOucString::find(), XrdSecEntity::grps, XrdCryptoX509::Issuer(), XrdOucString::length(), NOTIFY, PRINT, XrdSecEntity::role, SafeFree, XrdCryptoX509Chain::SearchBySubject(), STR_NPOS, XrdCryptoX509::Subject(), XrdOucString::tokenize(), XrdSecEntity::vorg, and XrdSslgsiX509GetVOMSAttr().
Referenced by Authenticate().
|
private |
References XrdSecEntity::creds, XrdSecEntity::credslen, XrdSecEntity::endorsements, XrdSecEntity::grps, XrdSecEntity::host, XrdSecEntity::moninfo, XrdSecEntity::name, XrdSecEntity::role, SafeFree, and XrdSecEntity::vorg.
Referenced by Authenticate().
|
staticprivate |
References XrdSutCache::Add(), GSICrlStack::Add(), XrdCryptoX509Chain::Begin(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdOucString::c_str(), cacheCA, CACheck, gsiHSVars::Chain, XrdSutPFEntry::cnt, gsiHSVars::Crl, CRLCheck, CRLDownload, CRLRefresh, DEBUG, GSICrlStack::Del(), EPNAME, XrdSutCache::Get(), GetCApath(), gsiHSVars::HashAlg, hs, XrdCryptoFactory::ID(), XrdCryptoX509Crl::IsExpired(), kPFE_ok, XrdSutPFBuf::len, LoadCRL(), XrdSutPFEntry::mtime, NOTIFY, PRINT, XrdSutCache::Rehash(), XrdSutCache::Remove(), SafeDelete, stackCRL, XrdSutPFEntry::status, XrdCryptoX509::SubjectHash(), gsiHSVars::TimeStamp, XrdSutCacheRef::UnLock(), VerifyCA(), and XrdCryptoFactory::X509ParseFile().
Referenced by GetSrvCertEnt(), and ParseCAlist().
|
staticprivate |
References access(), XrdOucString::c_str(), CAdir, XrdOucString::endswith(), XrdOucString::length(), and XrdOucString::tokenize().
Referenced by GetCA(), and VerifyCA().
|
virtual |
Generate client credentials to be used in the authentication process.
| parm | Pointer to the information returned by the server either in the initial login response or the authmore response. |
| einfo | The 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. |
Implements XrdSecProtocol.
References XrdSutBuffer::AddBucket(), AddSerialized(), XrdCryptoX509Chain::Begin(), XrdSutBucket::buffer, XrdSecBuffer::buffer, XrdOucString::c_str(), gsiHSVars::Cbck, CheckRtag(), ClientStepStr(), CryptList, gsiHSVars::CryptoMod, DEBUG, XrdSutBuffer::Dump(), XrdSecProtocol::Entity, EPNAME, ErrC(), XrdSutBuffer::GetProtocol(), XrdSutBuffer::GetStep(), HashCompatibility, hs, gsiHSVars::ID, XrdCryptoX509::IssuerHash(), gsiHSVars::Iter, XrdCryptoX509::kCA, kGSErrAddBucket, kGSErrBadOpt, kGSErrBadProtocol, kGSErrBadRndmTag, kGSErrCreateBucket, kGSErrDecodeBuffer, kGSErrError, kGSErrNoBuffer, kGSErrNoCipher, kGSErrNoPublic, kGSErrParseBuffer, kGSErrSerialBuffer, kXGC_cert, kXGC_certreq, kXGC_none, kXGC_sigpxy, kXGS_cert, kXGS_init, kXGS_pxyreq, kXRS_clnt_opts, kXRS_cryptomod, kXRS_issuer_hash, kXRS_main, kXRS_message, kXRS_puk, kXRS_user, kXRS_version, XrdOucString::length(), XrdSutBuffer::MarshalBucket(), XrdSecEntity::name, XrdCryptoX509Chain::Next(), NOTIFY, gsiHSVars::Options, gsiHSVars::Parms, ParseClientInput(), proxyChain, XrdCryptoCipher::Public(), gsiHSVars::PxyChain, QTRACE, REL2, gsiHSVars::RemVers, XrdOucString::replace(), XrdSutBuffer::Serialized(), ServerStepStr(), sessionCF, sessionKey, XrdSutBuffer::SetStep(), XrdSutBucket::size, XrdSecBuffer::size, srvMode, XrdCryptoX509::SubjectHash(), gsiHSVars::TimeStamp, XrdCryptoX509::type, XrdSutBuffer::UpdateBucket(), Version, XrdCryptoFactory::X509ExportChain(), XrdSecPROTOIDENT, and XrdSutBuckStr().
|
virtual |
Get the current encryption key (i.e. session key)
| buff | buffer to hold the key, and may be null. |
| size | size of the buffer. |
Reimplemented from XrdSecProtocol.
References XrdCryptoCipher::AsBucket(), bucketKey, XrdSutBucket::buffer, DEBUG, EPNAME, sessionKey, and XrdSutBucket::size.
|
staticprivate |
References XrdSutCache::Add(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdSutPFEntry::buf3, XrdOucString::c_str(), cacheCert, CAdir, XrdSutPFEntry::cnt, emsg(), EPNAME, XrdCryptoX509::Export(), XrdOucString::find(), XrdSutCache::Get(), GetCA(), HashCompatibility, XrdCryptoX509::IssuerHash(), XrdCryptoX509::IsValid(), XrdCryptoRSA::kComplete, XrdCryptoX509::kEEC, kPFE_ok, kPFE_special, XrdSutPFBuf::len, XrdOucString::length(), XrdSutPFEntry::mtime, XrdCryptoFactory::Name(), XrdCryptoX509::NotAfter(), XrdCryptoX509::PKI(), PRINT, PxyValid, QueryProxy(), XrdSutPFEntry::Reset(), SafeDelete, SrvCert, SrvKey, stat(), XrdCryptoRSA::status, XrdSutPFEntry::status, STR_NPOS, XrdCryptoX509::type, XrdCryptoX509::Type(), XrdSutCacheRef::UnLock(), UsrProxy, XrdSysPrivGuard::Valid(), and XrdCryptoFactory::X509().
Referenced by Init(), and ServerDoCertreq().
|
static |
References access(), AuthzCacheTimeOut, AuthzCertFmt, gsiOptions::authzfun, AuthzFun, gsiOptions::authzfunparms, gsiOptions::authzpxy, AuthzPxyWhat, AuthzPxyWhere, gsiOptions::authzto, gsiOptions::bits, XrdOucString::c_str(), gsiOptions::ca, cacheAuthzFun, cacheCA, cacheCert, CACheck, cacheGMAP, cacheGMAPFun, cachePxy, CAdir, gsiOptions::cert, gsiOptions::certdir, XrdCryptoFactory::Cipher(), gsiOptions::cipher, gsiOptions::clist, gsiOptions::crl, CRLCheck, gsiOptions::crldir, CRLdir, CRLDownload, gsiOptions::crlext, gsiOptions::crlrefresh, CRLRefresh, cryptF, cryptID, cryptName, cryptoTRACE_Debug, cryptoTRACE_Dump, cryptoTRACE_Notify, DEBUG, gsiOptions::debug, Debug, DefBits, DefCipher, DefCRLext, DefCrypto, DefMD, gsiOptions::deplen, DepLength, gsiOptions::dlgpxy, XrdSutCache::Dump(), XrdSutCache::Empty(), XrdOucString::endswith(), EPNAME, XrdOucString::erase(), ErrF(), gsiOptions::exppxy, XrdCryptoFactory::GetCryptoFactory(), XrdOucErrInfo::getErrText(), GetSrvCertEnt(), GMAPCacheTimeOut, GMAPFile, gsiOptions::gmapfun, GMAPFun, gsiOptions::gmapfunparms, GMAPOpt, gsiOptions::gmapto, GMAPuseDNname, gsiOptions::gridmap, GSITrace, gUsrPxyDef, gsiOptions::hashcomp, HashCompatibility, XrdCryptoFactory::ID(), XrdSutCache::Init(), XrdOucString::insert(), gsiOptions::key, kGSErrError, kGSErrInit, kOptsDlgPxy, kOptsFwdPxy, kOptsPxFile, kOptsSigReq, kOptsSrvReq, XrdOucString::length(), LoadAuthzFun(), LoadGMAP(), LoadGMAPFun(), LoadVOMSFun(), gsiOptions::md, gsiOptions::mode, gsiOptions::moninfo, MonInfoOpt, XrdCryptoFactory::Name(), ncrypt, NOTIFY, XrdCryptoFactory::Notify(), gsiOptions::ogmap, PRINT, gsiOptions::proxy, PxyReqOpts, PxyValid, QTRACE, refcip, XrdSutCache::Rehash(), XrdSutCache::Reset(), Server, XrdCryptoFactory::SetTrace(), gsiOptions::sigpxy, SrvAllowedNames, SrvCert, SrvKey, gsiOptions::srvnames, stat(), sutTRACE_Debug, sutTRACE_Dump, sutTRACE_Notify, XrdOucString::tokenize(), TRACE, TRACE_ALL, TRACE_Authen, TRACE_Debug, XrdSutCacheRef::UnLock(), UsrCert, UsrKey, UsrProxy, gsiOptions::valid, Version, gsiOptions::vomsat, VOMSAttrOpt, VOMSCertFmt, gsiOptions::vomsfun, VOMSFun, gsiOptions::vomsfunparms, XrdOucTrace::What, XrdCryptoMax, XrdCryptoSetTrace(), XrdSutExpand(), XrdSutHome(), and XrdSutSetTrace().
Referenced by XrdSecProtocolgsiInit().
|
staticprivate |
References ProxyIn_t::bits, XrdOucString::c_str(), ProxyIn_t::cert, ProxyIn_t::certdir, DEBUG, ProxyIn_t::deplen, EPNAME, XrdOucString::erase(), XrdOucString::find(), ProxyIn_t::key, kMAXBUFLEN, NOTIFY, ProxyIn_t::out, PRINT, stat(), ProxyIn_t::valid, XrdSslgsiX509CreateProxy(), and XrdSutParseTime().
Referenced by QueryProxy().
|
staticprivate |
References AuthzKey, AuthzPlugin, XrdOucString::c_str(), DEBUG, eDest, EPNAME, XrdSysPlugin::getPlugin(), XrdOucString::length(), and PRINT.
Referenced by Init().
|
staticprivate |
References XrdOucString::c_str(), closedir(), CRLCheck, CRLdir, DEBUG, DefCRLext, EPNAME, XrdOucString::find(), fopen, XrdCryptoX509Crl::IssuerHash(), XrdOucString::length(), opendir(), PRINT, readdir(), SafeDelete, XrdCryptoX509::SubjectHash(), XrdOucString::tokenize(), XrdCryptoX509Crl::Verify(), XrdCryptoFactory::X509(), and XrdCryptoFactory::X509Crl().
Referenced by GetCA().
|
staticprivate |
References XrdSutCache::Add(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdOucString::c_str(), cacheGMAP, XrdSutPFEntry::cnt, DEBUG, XrdSutCache::Empty(), EPNAME, fclose(), fopen, GMAPFile, XrdSutCache::Init(), kPFE_ok, lastGMAPCheck, XrdSutPFBuf::len, XrdOucString::length(), XrdSutPFEntry::mtime, mutexGMAP, PRINT, XrdSutCache::Rehash(), XrdSutCache::Reset(), SafeDelArray, stat(), XrdSutPFEntry::status, and XrdSutCacheRef::UnLock().
Referenced by Init(), and QueryGMAP().
|
staticprivate |
References XrdOucString::c_str(), DEBUG, eDest, EPNAME, XrdSysPlugin::getPlugin(), GMAPPlugin, XrdOucString::length(), and PRINT.
Referenced by Init().
|
staticprivate |
References XrdOucString::c_str(), DEBUG, eDest, EPNAME, XrdSysPlugin::getPlugin(), XrdOucString::length(), PRINT, and VOMSPlugin.
Referenced by Init().
|
private |
References XrdOucString::c_str(), gsiHSVars::Chain, DEBUG, EPNAME, GetCA(), hs, XrdOucString::length(), PRINT, sessionCF, and XrdOucString::tokenize().
Referenced by ClientDoInit(), and ServerDoCertreq().
|
private |
References ClientDoCert(), ClientDoInit(), ClientDoPxyreq(), EPNAME, XrdSutBuffer::GetStep(), kXGS_cert, kXGS_init, kXGS_pxyreq, and PRINT.
Referenced by getCredentials().
|
private |
References XrdOucString::c_str(), cryptF, cryptID, gsiHSVars::CryptoMod, DEBUG, Debug, EPNAME, XrdCryptoFactory::GetCryptoFactory(), GSITrace, hs, XrdCryptoFactory::ID(), XrdOucString::length(), ncrypt, NOTIFY, XrdCryptoFactory::Notify(), QTRACE, gsiHSVars::Rcip, refcip, sessionCF, XrdCryptoFactory::SetTrace(), XrdOucString::tokenize(), XrdOucTrace::What, and XrdCryptoMax.
Referenced by ClientDoInit(), and ServerDoCertreq().
|
private |
References EPNAME, XrdSutBuffer::GetStep(), kXGC_cert, kXGC_certreq, kXGC_sigpxy, PRINT, ServerDoCert(), ServerDoCertreq(), and ServerDoSigpxy().
Referenced by Authenticate().
|
staticprivate |
References XrdSutCache::Add(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, cacheGMAP, cacheGMAPFun, XrdSutPFEntry::cnt, XrdCryptoX509Chain::EECname(), EPNAME, XrdSutCache::Get(), GMAPCacheTimeOut, GMAPFun, kPFE_allowed, kPFE_ok, XrdSutPFBuf::len, XrdOucString::length(), LoadGMAP(), XrdSutPFEntry::mtime, NOTIFY, PRINT, XrdSutCache::Rehash(), XrdSutCache::Remove(), SafeDelArray, XrdSutPFEntry::status, and XrdSutCacheRef::UnLock().
Referenced by Authenticate().
|
staticprivate |
References XrdSutCache::Add(), XrdSutPFBuf::buf, XrdSutPFEntry::buf1, XrdSutPFEntry::buf2, XrdSutPFEntry::buf3, CACheck, ProxyOut_t::cbck, ProxyOut_t::chain, XrdCryptoX509Chain::CheckCA(), XrdCryptoX509Chain::CheckValidity(), XrdCryptoX509Chain::Cleanup(), XrdSutPFEntry::cnt, DEBUG, XrdCryptoX509Chain::End(), EPNAME, XrdSutCache::Get(), InitProxy(), XrdCryptoRSA::kComplete, kPFE_special, ProxyOut_t::ksig, kXRS_x509, XrdSutPFBuf::len, XrdSutPFEntry::mtime, XrdCryptoX509::NotAfter(), NOTIFY, ProxyIn_t::out, XrdCryptoX509::PKI(), PRINT, XrdSutCache::Rehash(), XrdCryptoX509Chain::Reorder(), SafeDelete, XrdSutBucket::SetBuf(), XrdCryptoRSA::status, XrdSutPFEntry::status, XrdSutCacheRef::UnLock(), XrdCryptoFactory::X509ExportChain(), XrdCryptoFactory::X509ParseBucket(), and XrdCryptoFactory::X509ParseFile().
Referenced by ClientDoInit(), and GetSrvCertEnt().
|
private |
References XrdOucString::assign(), XrdOucString::beginswith(), XrdOucString::c_str(), XrdSecProtocol::Entity, XrdOucString::erasefromstart(), XrdOucString::find(), XrdSecEntity::host, XrdOucString::length(), XrdOucString::matches(), XrdOucString::replace(), SrvAllowedNames, STR_NPOS, and XrdOucString::tokenize().
Referenced by ClientDoCert().
|
private |
References XrdSutPFBuf::buf, XrdSutPFEntry::buf4, XrdSutBucket::buffer, XrdOucString::c_str(), gsiHSVars::Chain, XrdCryptoFactory::Cipher(), gsiHSVars::Cref, gsiHSVars::Crl, XrdSutBuffer::Deactivate(), XrdCryptoCipher::Decrypt(), DefCipher, DefMD, XrdCryptoX509Chain::End(), EPNAME, XrdCryptoX509Req::Export(), XrdCryptoCipher::Finalize(), XrdOucString::find(), XrdSutBuffer::GetBucket(), hs, XrdCryptoRSA::IsValid(), XrdCryptoX509Chain::kNone, kOptsDelChn, kOptsDlgPxy, kOptsFwdPxy, kOptsSigReq, kOptsSrvReq, kXRS_cipher_alg, kXRS_main, kXRS_md_alg, kXRS_puk, kXRS_version, kXRS_x509, XrdCryptoX509Chain::LastError(), XrdCryptoFactory::MsgDigest(), XrdSutPFEntry::mtime, NOTIFY, gsiHSVars::Options, XrdCryptoX509::PKI(), gsiHSVars::PxyChain, PxyReqOpts, gsiHSVars::Rcip, gsiHSVars::RemVers, XrdCryptoX509Chain::Reorder(), XrdCryptoFactory::RSA(), SafeDelete, sessionCF, sessionKey, sessionKver, sessionMD, XrdSutBucket::size, TimeSkew, gsiHSVars::TimeStamp, XrdSutBucket::ToString(), XrdCryptosslgsiX509Chain::Verify(), Version, XrdCryptoFactory::X509ParseBucket(), and XrdSslgsiX509CreateProxyReq().
Referenced by ParseServerInput().
|
private |
References XrdSutPFBuf::buf, XrdSutPFEntry::buf2, XrdSutPFEntry::buf3, XrdSutBucket::buffer, XrdOucString::c_str(), gsiHSVars::Cbck, gsiHSVars::Cref, XrdSutBuffer::Deactivate(), XrdSutBuffer::GetBucket(), GetSrvCertEnt(), hs, gsiHSVars::ID, kXRS_clnt_opts, kXRS_cryptomod, kXRS_issuer_hash, kXRS_main, kXRS_version, gsiHSVars::Options, ParseCAlist(), ParseCrypto(), gsiHSVars::RemVers, XrdCryptoFactory::RSA(), sessionCF, sessionKsig, XrdSutBucket::size, gsiHSVars::TimeStamp, XrdSutBucket::ToString(), XrdSutBuffer::UnmarshalBucket(), and Version.
Referenced by ParseServerInput().
|
private |
References XrdSutPFBuf::buf, XrdSutPFEntry::buf4, XrdSutBucket::buffer, XrdOucString::c_str(), gsiHSVars::Cref, DEBUG, XrdCryptoCipher::Decrypt(), XrdCryptoX509Chain::Dump(), XrdCryptoX509Chain::EECname(), XrdCryptoX509Chain::End(), XrdSecProtocol::Entity, EPNAME, XrdOucString::find(), XrdSutBuffer::GetBucket(), XrdSecEntity::grps, XrdSecEntity::host, hs, XrdCryptoRSA::ImportPrivate(), kOptsFwdPxy, kOptsPxFile, kXRS_main, kXRS_message, kXRS_user, kXRS_x509, XrdOucString::length(), XrdSecEntity::name, XrdCryptoRSA::Opaque(), gsiHSVars::Options, XrdCryptoX509::PKI(), PRINT, proxyChain, XrdCryptoX509Chain::PushBack(), gsiHSVars::PxyChain, PxyReqOpts, QTRACE, XrdOucString::replace(), XrdCryptoX509Chain::SearchBySubject(), sessionCF, sessionKey, XrdCryptoX509::SetPKI(), XrdSutBucket::size, STR_NPOS, XrdCryptoX509::SubjectHash(), XrdSutBucket::ToString(), UsrProxy, XrdSecEntity::vorg, XrdCryptoFactory::X509(), XrdCryptoFactory::X509ChainToFile(), and XrdSutResolve().
Referenced by ParseServerInput().
|
virtual |
Set the current encryption key
| buff | buffer that holds the key. |
| size | size of the key. |
Reimplemented from XrdSecProtocol.
References XrdCryptoFactory::Cipher(), DEBUG, EPNAME, SafeDelete, sessionCF, sessionKey, and XrdSutBucket::SetBuf().
|
virtual |
Sign data in inbuff using the session key.
| inbuff | buffer holding data to be signed. |
| inlen | length of the data. |
| outbuff | place where a pointer to the signature is placed. |
Reimplemented from XrdSecProtocol.
References XrdCryptoBasic::Buffer(), DEBUG, XrdCryptoRSA::EncryptPrivate(), EPNAME, XrdCryptoMsgDigest::Final(), XrdCryptoRSA::GetOutlen(), XrdCryptoBasic::Length(), XrdCryptoMsgDigest::Reset(), SafeFree, sessionKsig, sessionMD, and XrdCryptoMsgDigest::Update().
|
virtual |
Verify a signature using the session key.
| inbuff | buffer holding data to be verified. |
| inlen | length of the data. |
| sigbuff | pointer to the signature data. |
| siglen | length of the signature data. |
Reimplemented from XrdSecProtocol.
References XrdCryptoBasic::Buffer(), DEBUG, XrdCryptoRSA::DecryptPublic(), EPNAME, XrdCryptoMsgDigest::Final(), XrdCryptoRSA::GetOutlen(), XrdCryptoBasic::Length(), XrdCryptoMsgDigest::Reset(), sessionKver, sessionMD, and XrdCryptoMsgDigest::Update().
|
staticprivate |
References XrdCryptoX509Chain::Begin(), XrdOucString::c_str(), CACheck, XrdCryptoX509Chain::CheckCA(), EPNAME, GetCApath(), XrdCryptoX509::IssuerHash(), XrdCryptoX509Chain::kUnknown, XrdCryptoX509Chain::kValid, XrdOucString::length(), XrdCryptoX509Chain::Next(), NOTIFY, PRINT, XrdCryptoX509Chain::PutInFront(), XrdCryptoX509Chain::Remove(), SafeDelete, XrdCryptoX509Chain::SetStatusCA(), XrdCryptoX509::SubjectHash(), XrdCryptosslgsiX509Chain::Verify(), and XrdCryptoFactory::X509ParseFile().
Referenced by GetCA().
|
friend |
Referenced by XrdSecProtocolgsi().
|
friend |
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and LoadAuthzFun().
|
staticprivate |
Referenced by LoadAuthzFun().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
private |
Referenced by Delete(), getKey(), and XrdSecProtocolgsi().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
|
staticprivate |
Referenced by GetSrvCertEnt(), and Init().
|
staticprivate |
Referenced by GetCA(), Init(), QueryProxy(), and VerifyCA().
|
staticprivate |
Referenced by Init(), LoadGMAP(), and QueryGMAP().
|
staticprivate |
Referenced by Init(), and QueryGMAP().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
Referenced by ClientDoInit(), GetCApath(), GetSrvCertEnt(), and Init().
|
staticprivate |
|
staticprivate |
Referenced by Init(), and ParseCrypto().
|
staticprivate |
Referenced by Init(), and ParseCrypto().
|
staticprivate |
Referenced by ErrF(), Init(), and ParseCrypto().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
Referenced by Authenticate(), Init(), and ServerDoCert().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
|
staticprivate |
Referenced by Authenticate(), Init(), and ServerDoCert().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
Referenced by EnableTracing(), LoadAuthzFun(), LoadGMAPFun(), and LoadVOMSFun().
|
staticprivate |
Referenced by Init(), and QueryGMAP().
|
staticprivate |
Referenced by Init(), and LoadGMAP().
|
staticprivate |
Referenced by Init(), and QueryGMAP().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by LoadGMAPFun().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
|
staticprivate |
Referenced by EnableTracing(), Init(), and ParseCrypto().
|
staticprivate |
Referenced by getCredentials(), GetSrvCertEnt(), and Init().
|
private |
Referenced by XrdSecProtocolgsi().
|
private |
|
staticprivate |
Referenced by LoadGMAP().
|
staticprivate |
Referenced by EnableTracing().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by LoadGMAP().
|
staticprivate |
Referenced by Init(), and ParseCrypto().
|
private |
Referenced by XrdSecProtocolgsi().
|
private |
Referenced by Delete(), getCredentials(), ServerDoSigpxy(), and XrdSecProtocolgsi().
|
staticprivate |
Referenced by ClientDoInit(), Init(), ServerDoCert(), and ServerDoSigpxy().
|
staticprivate |
Referenced by ClientDoInit(), GetSrvCertEnt(), and Init().
|
staticprivate |
Referenced by Init(), and ParseCrypto().
|
staticprivate |
Referenced by Init(), and XrdSecProtocolgsi().
|
private |
|
private |
Referenced by Authenticate(), ClientDoCert(), ClientDoPxyreq(), Decrypt(), Delete(), Encrypt(), getCredentials(), getKey(), ServerDoCert(), ServerDoSigpxy(), setKey(), and XrdSecProtocolgsi().
|
private |
Referenced by AddSerialized(), ClientDoInit(), Delete(), ServerDoCertreq(), Sign(), and XrdSecProtocolgsi().
|
private |
Referenced by CheckRtag(), ClientDoCert(), Delete(), ServerDoCert(), Verify(), and XrdSecProtocolgsi().
|
private |
Referenced by ClientDoCert(), Delete(), ServerDoCert(), Sign(), Verify(), and XrdSecProtocolgsi().
|
staticprivate |
Referenced by Init(), and ServerCertNameOK().
|
staticprivate |
Referenced by GetSrvCertEnt(), and Init().
|
staticprivate |
Referenced by GetSrvCertEnt(), and Init().
|
private |
Referenced by getCredentials(), and XrdSecProtocolgsi().
|
staticprivate |
Referenced by GetCA(), and gsiHSVars::~gsiHSVars().
|
staticprivate |
Referenced by ClientDoCert(), and ServerDoCert().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
Referenced by ClientDoInit(), and Init().
|
staticprivate |
Referenced by ClientDoInit(), GetSrvCertEnt(), Init(), and ServerDoSigpxy().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by Authenticate(), and Init().
|
staticprivate |
Referenced by LoadVOMSFun().
1.8.3.1