]>
Commit | Line | Data |
---|---|---|
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 | 21 | int |
33810b1d | 22 | ACLServerCertificateStrategy::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 | ||
36 | ACLServerCertificateStrategy * | |
37 | ACLServerCertificateStrategy::Instance() | |
38 | { | |
39 | return &Instance_; | |
40 | } | |
41 | ||
42 | ACLServerCertificateStrategy ACLServerCertificateStrategy::Instance_; | |
43 | ||
cb4f4424 | 44 | #endif /* USE_OPENSSL */ |
f53969cc | 45 |