1 #ifndef __ARC_VOMSUTIL_H__ 
    2 #define __ARC_VOMSUTIL_H__ 
    7 #include <arc/ArcRegex.h> 
    8 #include <arc/credential/VOMSAttribute.h> 
    9 #include <arc/credential/Credential.h> 
   16   typedef std::vector<std::string> VOMSTrustChain;
 
   18   typedef std::string VOMSTrustRegex;
 
   30       X509ParsingFailed = (1<<3), 
 
   31       ACParsingFailed = (1<<4), 
 
   32       InternalParsingFailed = (1<<5), 
 
   33       TimeValidFailed = (1<<6), 
 
   35       ParsingError = (X509ParsingFailed | ACParsingFailed | InternalParsingFailed), 
 
   36       ValidationError = (CAUnknown | CertRevoked | LSCFailed | TrustFailed | TimeValidFailed), 
 
   37       Error = (0xffff & ~IsCritical) 
 
   43     std::vector<std::string> attributes;
 
   48     VOMSACInfo(
void):from(-1),till(-1),status(0) { };
 
   54       std::vector<VOMSTrustChain> chains_;
 
   55       std::vector<RegularExpression*> regexs_;
 
   96       VOMSTrustList(
const std::vector<VOMSTrustChain>& chains,
const std::vector<VOMSTrustRegex>& regexs);
 
  116       VOMSTrustChain& 
AddChain(
const VOMSTrustChain& chain);
 
  119       void AddElement(
const std::vector<std::string>& encoded_list);
 
  125       int SizeChains(
void)
 const { 
return chains_.size(); };
 
  126       int SizeRegexs(
void)
 const { 
return regexs_.size(); };
 
  127       const VOMSTrustChain& GetChain(
int num)
 const { 
return chains_[num]; };
 
  131   void InitVOMSAttribute(
void);
 
  182                     std::vector<std::string> &fqan,
 
  183                     std::vector<std::string> &targets,
 
  184                     std::vector<std::string>& attributes, 
 
  185                     std::string &voname, std::string &uri, 
int lifetime);
 
  193   bool addVOMSAC(ArcCredential::AC** &aclist, std::string &acorder, std::string &decodedac);
 
  250                    const std::string& ca_cert_dir,
 
  251                    const std::string& ca_cert_file, 
 
  252                    const std::string& vomsdir, 
 
  254                    std::vector<VOMSACInfo>& output, 
 
  255                    bool verify = 
true, 
bool reportall = 
false);
 
  260                    const std::string& ca_cert_dir,
 
  261                    const std::string& ca_cert_file, 
 
  262                    const std::string& vomsdir, 
 
  264                    std::vector<VOMSACInfo>& output,
 
  265                    bool verify = 
true, 
bool reportall = 
false);
 
  269                    const std::string& ca_cert_dir,
 
  270                    const std::string& ca_cert_file,
 
  271                    const std::string& vomsdir,
 
  273                    std::vector<VOMSACInfo>& output,
 
  274                    bool verify = 
true, 
bool reportall = 
false); 
 
  278   char *
VOMSDecode(
const char *data, 
int size, 
int *j);
 
  281   char *
VOMSEncode(
const char *data, 
int size, 
int *j);
 
  294                                     const std::string& ca_cert_dir = std::string(
""),
 
  295                                     const std::string& ca_cert_file = std::string(
""),
 
  296                                     const std::string& vomsdir = std::string(
""),
 
  297                                     const std::vector<std::string>& voms_trust_list = std::vector<std::string>());
 
  299   std::string VOMSFQANToFull(
const std::string& vo, 
const std::string& fqan);
 
  314   bool VOMSACSeqEncode(
const std::list<std::string> acs, std::string& asn1);