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);
296 const std::string& ca_cert_dir = std::string(
""),
297 const std::string& ca_cert_file = std::string(
""),
298 const std::string& vomsdir = std::string(
""),
299 const std::vector<std::string>& voms_trust_list = std::vector<std::string>());
301 std::string VOMSFQANToFull(
const std::string& vo,
const std::string& fqan);
303 std::string VOMSFQANFromFull(
const std::string& attribute);
318 bool VOMSACSeqEncode(
const std::list<std::string> acs, std::string& asn1);
Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
bool createVOMSAC(std::string &codedac, Credential &issuer_cred, Credential &holder_cred, std::vector< std::string > &fqan, std::vector< std::string > &targets, std::vector< std::string > &attributes, std::string &voname, std::string &uri, int lifetime)
A class for storing and manipulating times.
Definition: DateTime.h:125
bool VOMSACSeqEncode(const std::string &ac_seq, std::string &asn1)
bool parseVOMSAC(X509 *holder, const std::string &ca_cert_dir, const std::string &ca_cert_file, const std::string &vomsdir, VOMSTrustList &vomscert_trust_dn, std::vector< VOMSACInfo > &output, bool verify=true, bool reportall=false)
bool addVOMSAC(ArcCredential::AC **&aclist, std::string &acorder, std::string &decodedac)
std::string getCredentialProperty(const Arc::Credential &u, const std::string &property, const std::string &ca_cert_dir=std::string(""), const std::string &ca_cert_file=std::string(""), const std::string &vomsdir=std::string(""), const std::vector< std::string > &voms_trust_list=std::vector< std::string >())
Stores definitions for making decision if VOMS server is trusted.
Definition: VOMSUtil.h:52
char * VOMSDecode(const char *data, int size, int *j)
Class for handling X509 credentials.
Definition: Credential.h:76
char * VOMSEncode(const char *data, int size, int *j)
A regular expression class.
Definition: ArcRegex.h:17
Represents VOMS attribute part of a credential.
Definition: VOMSUtil.h:21
RegularExpression & AddRegex(const VOMSTrustRegex ®)
VOMSTrustChain & AddChain(void)