]> git.ipfire.org Git - thirdparty/squid.git/blob - src/security/ServerOptions.h
Cleanup: rename Security::ContextPointer to ContextPtr
[thirdparty/squid.git] / src / security / ServerOptions.h
1 /*
2 * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
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.
7 */
8
9 #ifndef SQUID_SRC_SECURITY_SERVEROPTIONS_H
10 #define SQUID_SRC_SECURITY_SERVEROPTIONS_H
11
12 #include "security/PeerOptions.h"
13
14 namespace Security
15 {
16
17 /// TLS squid.conf settings for a listening port
18 class ServerOptions : public PeerOptions
19 {
20 public:
21 ServerOptions() : PeerOptions() {}
22 explicit ServerOptions(const Security::ServerOptions &);
23 virtual ~ServerOptions() = default;
24
25 /* Security::PeerOptions API */
26 virtual void parse(const char *);
27 virtual void clear() {*this = ServerOptions();}
28 virtual void dumpCfg(Packable *, const char *pfx) const;
29
30 /// update the context with DH, EDH, EECDH settings
31 void updateContextEecdh(Security::ContextPtr &);
32
33 private:
34 void loadDhParams();
35
36 //public:
37 SBuf dh; ///< Diffi-Helman cipher config
38
39 private:
40 SBuf dhParamsFile; ///< Diffi-Helman ciphers parameter file
41 SBuf eecdhCurve; ///< Elliptic curve for ephemeral EC-based DH key exchanges
42
43 Security::DhePointer parsedDhParams; ///< DH parameters for temporary/ephemeral DH key exchanges
44 };
45
46 } // namespace Security
47
48 #endif /* SQUID_SRC_SECURITY_SERVEROPTIONS_H */
49