00001 // $Id: XrdCryptosslgsiX509Chain.hh 22437 2008-03-04 14:35:16Z rdm $ 00002 #ifndef __CRYPTO_SSLGSIX509CHAIN_H__ 00003 #define __CRYPTO_SSLGSIX509CHAIN_H__ 00004 /******************************************************************************/ 00005 /* */ 00006 /* X r d C r y p t o s s l g s i X 5 0 9 C h a i n . h h */ 00007 /* */ 00008 /* (c) 2005 G. Ganis , CERN */ 00009 /* */ 00010 /******************************************************************************/ 00011 00012 /* ************************************************************************** */ 00013 /* */ 00014 /* Chain of X509 certificates following GSI policy(ies). */ 00015 /* */ 00016 /* ************************************************************************** */ 00017 00018 #include <XrdCrypto/XrdCryptoX509Chain.hh> 00019 00020 // ---------------------------------------------------------------------------// 00021 // // 00022 // XrdCryptosslgsiX509Chain // 00023 // // 00024 // Enforce GSI policies on X509 certificate chains // 00025 // // 00026 // ---------------------------------------------------------------------------// 00027 00028 const int kOptsRfc3820 = 0x1; 00029 00030 class XrdCryptosslgsiX509Chain : public XrdCryptoX509Chain { 00031 00032 public: 00033 XrdCryptosslgsiX509Chain(XrdCryptoX509 *c = 0) : XrdCryptoX509Chain(c) { } 00034 XrdCryptosslgsiX509Chain(XrdCryptosslgsiX509Chain *c) : XrdCryptoX509Chain(c) { } 00035 virtual ~XrdCryptosslgsiX509Chain() { } 00036 00037 // Verify chain 00038 bool Verify(EX509ChainErr &e, x509ChainVerifyOpt_t *vopt = 0); 00039 00040 private: 00041 00042 // Proxy naming rules 00043 bool SubjectOK(EX509ChainErr &e, XrdCryptoX509 *xcer); 00044 }; 00045 00046 #endif