]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/ServerCertificate.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / acl / ServerCertificate.cc
1 /*
2 */
3
4 #include "squid.h"
5
6 #if USE_SSL
7
8 #include "acl/CertificateData.h"
9 #include "acl/Checklist.h"
10 #include "acl/ServerCertificate.h"
11 #include "client_side.h"
12 #include "fde.h"
13 #include "ssl/ServerBump.h"
14
15 int
16 ACLServerCertificateStrategy::match(ACLData<MatchType> * &data, ACLFilledChecklist *checklist, ACLFlags &)
17 {
18 X509 *cert = NULL;
19 if (checklist->serverCert.get())
20 cert = checklist->serverCert.get();
21 else if (checklist->conn() != NULL && checklist->conn()->serverBump())
22 cert = checklist->conn()->serverBump()->serverCert.get();
23
24 if (!cert)
25 return 0;
26
27 return data->match(cert);
28 }
29
30 ACLServerCertificateStrategy *
31 ACLServerCertificateStrategy::Instance()
32 {
33 return &Instance_;
34 }
35
36 ACLServerCertificateStrategy ACLServerCertificateStrategy::Instance_;
37
38 #endif /* USE_SSL */