|
Squid Web Cache master
|
TLS squid.conf settings for a remote server peer. More...
#include <PeerOptions.h>
Classes | |
| struct | flags_ |
| flags governing Squid internal TLS operations More... | |
Public Member Functions | |
| PeerOptions () | |
| PeerOptions (const PeerOptions &)=default | |
| PeerOptions & | operator= (const PeerOptions &)=default |
| PeerOptions (PeerOptions &&)=default | |
| PeerOptions & | operator= (PeerOptions &&)=default |
| virtual | ~PeerOptions () |
| virtual void | parse (const char *) |
| parse a TLS squid.conf option | |
| void | parseOptions () |
| parse and verify the [tls-]options= string in sslOptions | |
| virtual void | clear () |
| reset the configuration details to default | |
| virtual Security::ContextPointer | createBlankContext () const |
| generate an unset security context object | |
| Security::ContextPointer | createClientContext (bool setOptions) |
| generate a security client-context from these configured options | |
| void | updateTlsVersionLimits () |
| sync the context options with tls-min-version=N configuration | |
| void | updateContextOptions (Security::ContextPointer &) |
| Setup the library specific 'options=' parameters for the given context. | |
| void | updateContextNpn (Security::ContextPointer &) |
| setup the NPN extension details for the given context | |
| void | updateContextCa (Security::ContextPointer &) |
| setup the CA details for the given context | |
| void | updateContextCrl (Security::ContextPointer &) |
| setup the CRL details for the given context | |
| void | updateContextTrust (Security::ContextPointer &) |
| decide which CAs to trust | |
| void | updateSessionOptions (Security::SessionPointer &) |
| setup any library-specific options that can be set for the given session | |
| virtual void | dumpCfg (std::ostream &, const char *pfx) const |
| output squid.conf syntax with 'pfx' prefix on parameters for the stored settings | |
Public Attributes | |
| SBuf | sslOptions |
| library-specific options string | |
| SBuf | caDir |
| path of directory containing a set of trusted Certificate Authorities | |
| SBuf | crlFile |
| path of file containing Certificate Revoke List | |
| SBuf | sslCipher |
| SBuf | sslFlags |
| flags defining what TLS operations Squid performs | |
| SBuf | sslDomain |
| SBuf | tlsMinVersion |
| version label for minimum TLS version to permit | |
| ParsedPortFlags | parsedFlags = 0 |
| parsed value of sslFlags | |
| std::list< Security::KeyData > | certs |
| details from the cert= and file= config parameters | |
| std::list< SBuf > | caFiles |
| paths of files containing trusted Certificate Authority | |
| Security::CertRevokeList | parsedCrl |
| CRL to use when verifying the remote end certificate. | |
| bool | encryptTransport = false |
| whether transport encryption (TLS/SSL) is to be used on connections to the peer | |
Protected Member Functions | |
| template<typename T > | |
| Security::ContextPointer | convertContextFromRawPtr (T ctx) const |
Protected Attributes | |
| int | sslVersion = 0 |
| struct Security::PeerOptions::flags_ | flags |
Private Member Functions | |
| ParsedPortFlags | parseFlags () |
| void | loadCrlFile () |
| void | loadKeysFile () |
Private Attributes | |
| SBuf | tlsMinOptions |
| Security::ParsedOptions | parsedOptions |
| bool | optsReparse = true |
| whether parsedOptions content needs to be regenerated | |
Definition at line 25 of file PeerOptions.h.
| Security::PeerOptions::PeerOptions | ( | ) |
|
default |
|
default |
|
inlinevirtual |
Definition at line 33 of file PeerOptions.h.
|
inlinevirtual |
Reimplemented in Security::ServerOptions.
Definition at line 42 of file PeerOptions.h.
References PeerOptions().
|
inlineprotected |
Definition at line 111 of file PeerOptions.h.
|
virtual |
Reimplemented in Security::ServerOptions.
Definition at line 246 of file PeerOptions.cc.
References debugs, Security::ErrorString(), fatalf(), Ssl::Initialize(), and TLS_client_method.
| Security::ContextPointer Security::PeerOptions::createClientContext | ( | bool | setOptions | ) |
Definition at line 276 of file PeerOptions.cc.
References Ssl::InitClientContext().
Referenced by configDoConfigure().
|
virtual |
Reimplemented in Security::ServerOptions.
Definition at line 110 of file PeerOptions.cc.
Referenced by dump_peer_options(), and Security::ServerOptions::dumpCfg().
|
private |
Load a CRLs list stored in the file whose /path/name is in crlFile replaces any CRL loaded previously
Definition at line 618 of file PeerOptions.cc.
References debugs.
|
private |
|
default |
Referenced by Security::ServerOptions::operator=().
|
default |
|
virtual |
Reimplemented in Security::ServerOptions.
Definition at line 38 of file PeerOptions.cc.
References Security::KeyData::certFile, DBG_CRITICAL, DBG_PARSE_NOTE, debugs, fatal(), fatalf(), Security::KeyData::privateKeyFile, and xatoi().
Referenced by Security::ServerOptions::parse(), parse_obsolete(), and parse_securePeerOptions().
|
private |
Parses the TLS flags squid.conf parameter
Definition at line 554 of file PeerOptions.cc.
References DBG_IMPORTANT, DBG_PARSE_NOTE, debugs, fatal(), fatalf(), Here, SQUIDSBUFPH, SQUIDSBUFPRINT, SSL_FLAG_CONDITIONAL_AUTH, SSL_FLAG_DELAYED_AUTH, SSL_FLAG_DONT_VERIFY_DOMAIN, SSL_FLAG_DONT_VERIFY_PEER, SSL_FLAG_NO_DEFAULT_CA, SSL_FLAG_NO_SESSION_REUSE, SSL_FLAG_VERIFY_CRL, and SSL_FLAG_VERIFY_CRL_ALL.
| void Security::PeerOptions::parseOptions | ( | ) |
Pre-parse TLS options= parameter to be applied when the TLS objects created. Options must not used in the case of peek or stare bump mode.
Definition at line 447 of file PeerOptions.cc.
References CharacterSet::ALPHA, SBuf::append(), Parser::Tokenizer::atEnd(), SBuf::c_str(), SBuf::cmp(), DBG_IMPORTANT, DBG_PARSE_NOTE, debugs, CharacterSet::DIGIT, Security::ErrorString(), fatalf(), Parser::Tokenizer::int64(), SBuf::isEmpty(), ssl_option::name, SQUIDSBUFPH, SQUIDSBUFPRINT, and ssl_options.
Referenced by PeerOptions(), and parse_securePeerOptions().
| void Security::PeerOptions::updateContextCa | ( | Security::ContextPointer & | ctx | ) |
Definition at line 696 of file PeerOptions.cc.
References DBG_IMPORTANT, debugs, Security::ErrorString(), and loadSystemTrustedCa().
| void Security::PeerOptions::updateContextCrl | ( | Security::ContextPointer & | ctx | ) |
Definition at line 732 of file PeerOptions.cc.
References debugs, SSL_FLAG_VERIFY_CRL, and SSL_FLAG_VERIFY_CRL_ALL.
| void Security::PeerOptions::updateContextNpn | ( | Security::ContextPointer & | ctx | ) |
Definition at line 664 of file PeerOptions.cc.
| void Security::PeerOptions::updateContextOptions | ( | Security::ContextPointer & | ctx | ) |
Definition at line 639 of file PeerOptions.cc.
| void Security::PeerOptions::updateContextTrust | ( | Security::ContextPointer & | ctx | ) |
Definition at line 759 of file PeerOptions.cc.
References assert, DBG_IMPORTANT, debugs, and Security::ErrorString().
| void Security::PeerOptions::updateSessionOptions | ( | Security::SessionPointer & | s | ) |
Definition at line 779 of file PeerOptions.cc.
References DBG_IMPORTANT, debugs, and Security::ErrorString().
Referenced by CreateSession().
| void Security::PeerOptions::updateTlsVersionLimits | ( | ) |
Definition at line 158 of file PeerOptions.cc.
References SBuf::append(), SBuf::chop(), DBG_PARSE_NOTE, and debugs.
| SBuf Security::PeerOptions::caDir |
Definition at line 81 of file PeerOptions.h.
| std::list<SBuf> Security::PeerOptions::caFiles |
Definition at line 106 of file PeerOptions.h.
| std::list<Security::KeyData> Security::PeerOptions::certs |
Definition at line 105 of file PeerOptions.h.
Referenced by Ssl::InitClientContext().
| SBuf Security::PeerOptions::crlFile |
Definition at line 82 of file PeerOptions.h.
| bool Security::PeerOptions::encryptTransport = false |
Definition at line 147 of file PeerOptions.h.
Referenced by Adaptation::Config::dumpService(), PeerPoolMgr::handleOpenedConnection(), Security::BlindPeerConnector::initialize(), netdbExchangeStart(), FwdState::secureConnectionToPeerIfNeeded(), and CachePeer::securityContext().
|
protected |
Referenced by Security::ServerOptions::ServerOptions().
|
private |
Definition at line 100 of file PeerOptions.h.
| Security::CertRevokeList Security::PeerOptions::parsedCrl |
Definition at line 107 of file PeerOptions.h.
| ParsedPortFlags Security::PeerOptions::parsedFlags = 0 |
Definition at line 103 of file PeerOptions.h.
|
private |
Parsed value of sslOptions + tlsMinOptions settings. Set optsReparse=true to have this re-parsed before next use.
Definition at line 97 of file PeerOptions.h.
| SBuf Security::PeerOptions::sslCipher |
Definition at line 84 of file PeerOptions.h.
Referenced by Ssl::InitClientContext().
| SBuf Security::PeerOptions::sslDomain |
Definition at line 86 of file PeerOptions.h.
Referenced by Security::BlindPeerConnector::initialize().
| SBuf Security::PeerOptions::sslFlags |
Definition at line 85 of file PeerOptions.h.
| SBuf Security::PeerOptions::sslOptions |
Definition at line 80 of file PeerOptions.h.
|
protected |
Definition at line 130 of file PeerOptions.h.
|
private |
Library-specific options string generated from tlsMinVersion. Call updateTlsVersionLimits() to regenerate this string.
Definition at line 93 of file PeerOptions.h.
| SBuf Security::PeerOptions::tlsMinVersion |
Definition at line 88 of file PeerOptions.h.