]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/CertificateData.h
2 * Copyright (C) 1996-2021 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"
15 #include "ssl/support.h"
20 class ACLCertificateData
: public ACLData
<X509
*>
22 MEMPROXY_CLASS(ACLCertificateData
);
25 ACLCertificateData(Ssl::GETX509ATTRIBUTE
*, const char *attributes
, bool optionalAttr
= false);
26 ACLCertificateData(ACLCertificateData
const &);
27 ACLCertificateData
&operator= (ACLCertificateData
const &);
28 virtual ~ACLCertificateData();
30 virtual SBufList
dump() const;
33 virtual ACLData
<X509
*> *clone() const;
35 /// A '|'-delimited list of valid ACL attributes.
36 /// A "*" item means that any attribute is acceptable.
37 /// Assumed to be a const-string and is never duped/freed.
38 /// Nil unless ACL form is: acl Name type attribute value1 ...
39 const char *validAttributesStr
;
40 /// Parsed list of valid attribute names
41 std::list
<std::string
> validAttributes
;
42 /// True if the attribute is optional (-xxx options)
43 bool attributeIsOptional
;
48 /// The callback used to retrieve the data from X509 cert
49 Ssl::GETX509ATTRIBUTE
*sslAttributeCall
;
52 #endif /* SQUID_ACLCERTIFICATEDATA_H */