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);