]> git.ipfire.org Git - thirdparty/squid.git/blame - src/acl/ServerCertificate.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / acl / ServerCertificate.cc
CommitLineData
8578e64a 1/*
4ac4a490 2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
bbc27441
AJ
3 *
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.
8578e64a
AR
7 */
8
9#include "squid.h"
10
cb4f4424 11#if USE_OPENSSL
8578e64a 12
8578e64a 13#include "acl/CertificateData.h"
602d9612
A
14#include "acl/Checklist.h"
15#include "acl/ServerCertificate.h"
8578e64a 16#include "client_side.h"
72b12f9e 17#include "fde.h"
d3dddfb5 18#include "http/Stream.h"
8578e64a
AR
19#include "ssl/ServerBump.h"
20
8578e64a 21int
33810b1d 22ACLServerCertificateStrategy::match(ACLData<MatchType> * &data, ACLFilledChecklist *checklist, ACLFlags &)
8578e64a 23{
9b630a18
AJ
24 Security::CertPointer cert;
25 if (checklist->serverCert)
26 cert = checklist->serverCert;
8578e64a 27 else if (checklist->conn() != NULL && checklist->conn()->serverBump())
9b630a18 28 cert = checklist->conn()->serverBump()->serverCert;
8578e64a
AR
29
30 if (!cert)
31 return 0;
32
9b630a18 33 return data->match(cert.get());
8578e64a
AR
34}
35
36ACLServerCertificateStrategy *
37ACLServerCertificateStrategy::Instance()
38{
39 return &Instance_;
40}
41
42ACLServerCertificateStrategy ACLServerCertificateStrategy::Instance_;
43
cb4f4424 44#endif /* USE_OPENSSL */
f53969cc 45