]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/CertificateData.h
2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 #ifndef SQUID_ACLCERTIFICATEDATA_H
10 #define SQUID_ACLCERTIFICATEDATA_H
14 #include "acl/StringData.h"
16 #include "ssl/support.h"
21 class ACLCertificateData
: public ACLData
<X509
*>
23 MEMPROXY_CLASS(ACLCertificateData
);
26 ACLCertificateData(Ssl::GETX509ATTRIBUTE
*, const char *attributes
, bool optionalAttr
= false);
27 ACLCertificateData(ACLCertificateData
const &);
28 ACLCertificateData
&operator= (ACLCertificateData
const &);
29 virtual ~ACLCertificateData();
31 virtual SBufList
dump() const;
34 virtual ACLData
<X509
*> *clone() const;
36 /// A '|'-delimited list of valid ACL attributes.
37 /// A "*" item means that any attribute is acceptable.
38 /// Assumed to be a const-string and is never duped/freed.
39 /// Nil unless ACL form is: acl Name type attribute value1 ...
40 const char *validAttributesStr
;
41 /// Parsed list of valid attribute names
42 std::list
<std::string
> validAttributes
;
43 /// True if the attribute is optional (-xxx options)
44 bool attributeIsOptional
;
49 /// The callback used to retrieve the data from X509 cert
50 Ssl::GETX509ATTRIBUTE
*sslAttributeCall
;
53 #endif /* SQUID_ACLCERTIFICATEDATA_H */