stub_libsecurity.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 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 #include "squid.h"
10 #include "AccessLogEntry.h"
11 #include "comm/Connection.h"
12 #include "HttpRequest.h"
13 
14 #define STUB_API "security/libsecurity.la"
15 #include "tests/STUB.h"
16 
18 CBDATA_NAMESPACED_CLASS_INIT(Security, BlindPeerConnector);
19 namespace Security
20 {
22  const AsyncCallback<EncryptorAnswer> & aCallback,
23  const AccessLogEntryPointer &alp,
24  time_t) :
25  AsyncJob("Security::BlindPeerConnector"),
26  Security::PeerConnector(aServerConn, aCallback, alp, 0)
27 {STUB_NOP}
28 
29 bool BlindPeerConnector::initialize(Security::SessionPointer &) STUB_RETVAL(false)
30 FuturePeerContext *BlindPeerConnector::peerContext() const STUB_RETVAL(nullptr)
31 void BlindPeerConnector::noteNegotiationDone(ErrorState *) STUB
32 }
33 
34 #include "security/EncryptorAnswer.h"
36 std::ostream &Security::operator <<(std::ostream &os, const Security::EncryptorAnswer &) STUB_RETVAL(os)
37 
38 #include "security/Certificate.h"
42 std::ostream &operator <<(std::ostream &os, Security::Certificate &) STUB_RETVAL(os)
43 
44 #include "security/Handshake.h"
47 
48 #include "security/Io.h"
51 void Security::IoResult::printGist(std::ostream &) const STUB
52 void Security::IoResult::printWithExtras(std::ostream &) const STUB
54 
55 #include "security/KeyData.h"
56 namespace Security
57 {
58 void KeyData::loadFromFiles(const AnyP::PortCfg &, const char *) STUB
59 }
60 
61 #include "security/KeyLogger.h"
63 
64 #include "security/ErrorDetail.h"
66 #if USE_OPENSSL
68 #elif HAVE_LIBGNUTLS
70 #endif
73 SBuf Security::ErrorDetail::brief() const STUB_RETVAL(SBuf())
75 const char *Security::ErrorNameFromCode(ErrorCode, bool) STUB_RETVAL("")
76 
77 #include "security/NegotiationHistory.h"
79 void Security::NegotiationHistory::retrieveNegotiatedInfo(const Security::SessionPointer &) STUB
80 void Security::NegotiationHistory::retrieveParsedInfo(Security::TlsDetails::Pointer const &) STUB
81 const char *Security::NegotiationHistory::cipherName() const STUB
82 const char *Security::NegotiationHistory::printTlsVersion(AnyP::ProtocolVersion const &) const STUB
83 
84 #include "security/PeerConnector.h"
85 class TlsNegotiationDetails: public RefCountable {};
86 namespace Security
87 {
89  AsyncJob("Security::PeerConnector") {STUB}
90 PeerConnector::~PeerConnector() STUB
91 void PeerConnector::start() STUB
92 bool PeerConnector::doneAll() const STUB_RETVAL(true)
93 void PeerConnector::swanSong() STUB
94 const char *PeerConnector::status() const STUB_RETVAL("")
95 void PeerConnector::fillChecklist(ACLFilledChecklist &) const STUB
96 void PeerConnector::commCloseHandler(const CommCloseCbParams &) STUB
97 void PeerConnector::commTimeoutHandler(const CommTimeoutCbParams &) STUB
98 bool PeerConnector::initialize(Security::SessionPointer &) STUB_RETVAL(false)
99 void PeerConnector::negotiate() STUB
100 bool PeerConnector::sslFinalized() STUB_RETVAL(false)
101 void PeerConnector::handleNegotiationResult(const Security::IoResult &) STUB;
102 void PeerConnector::noteWantRead() STUB
103 void PeerConnector::noteWantWrite() STUB
104 void PeerConnector::noteNegotiationError(const Security::ErrorDetailPointer &) STUB
105 void PeerConnector::bail(ErrorState *) STUB
106 void PeerConnector::sendSuccess() STUB
107 void PeerConnector::callBack() STUB
108 void PeerConnector::disconnect() STUB
109 void PeerConnector::countFailingConnection() STUB
110 void PeerConnector::recordNegotiationDetails() STUB
111 EncryptorAnswer &PeerConnector::answer() STUB_RETREF(EncryptorAnswer)
112 }
113 
114 #include "security/PeerOptions.h"
116 
118 #if USE_OPENSSL
119  parsedOptions = 0;
120 #endif
121  STUB_NOP
122 }
123 void Security::PeerOptions::parse(char const*) STUB
125 void Security::PeerOptions::updateTlsVersionLimits() STUB
126 Security::ContextPointer Security::PeerOptions::createBlankContext() const STUB_RETVAL(Security::ContextPointer())
127 void Security::PeerOptions::updateContextCa(Security::ContextPointer &) STUB
128 void Security::PeerOptions::updateContextCrl(Security::ContextPointer &) STUB
129 void Security::PeerOptions::updateContextTrust(Security::ContextPointer &) STUB
130 void Security::PeerOptions::updateSessionOptions(Security::SessionPointer &) STUB
131 void Security::PeerOptions::dumpCfg(std::ostream &, char const*) const STUB
132 void Security::PeerOptions::parseOptions() STUB
133 void parse_securePeerOptions(Security::PeerOptions *) STUB
134 
135 #include "security/ServerOptions.h"
136 //Security::ServerOptions::ServerOptions(const Security::ServerOptions &) STUB
138 void Security::ServerOptions::parse(const char *) STUB
139 void Security::ServerOptions::dumpCfg(std::ostream &, const char *) const STUB
141 void Security::ServerOptions::initServerContexts(AnyP::PortCfg&) STUB
142 bool Security::ServerOptions::createStaticServerContext(AnyP::PortCfg &) STUB_RETVAL(false)
143 void Security::ServerOptions::createSigningContexts(const AnyP::PortCfg &) STUB
144 bool Security::ServerOptions::updateContextConfig(Security::ContextPointer &) STUB_RETVAL(false)
145 void Security::ServerOptions::updateContextEecdh(Security::ContextPointer &) STUB
146 void Security::ServerOptions::updateContextClientCa(Security::ContextPointer &) STUB
147 void Security::ServerOptions::syncCaFiles() STUB
148 void Security::ServerOptions::updateContextSessionId(Security::ContextPointer &) STUB
149 
150 #include "security/Session.h"
151 namespace Security {
152 bool CreateClientSession(FuturePeerContext &, const Comm::ConnectionPointer &, const char *) STUB_RETVAL(false)
153 bool CreateServerSession(const Security::ContextPointer &, const Comm::ConnectionPointer &, Security::PeerOptions &, const char *) STUB_RETVAL(false)
158 #if USE_OPENSSL
161 #endif
162 } // namespace Security
163 
ErrorCode ErrorCodeFromName(const char *name)
Definition: ErrorDetail.cc:410
int ErrorCode
Squid-defined error code (<0), an error code returned by X.509 API, or zero.
Definition: forward.h:131
void parse(const char *) override
parse a TLS squid.conf option
SBuf verbose(const HttpRequestPointer &) const override
Definition: ErrorDetail.cc:534
std::shared_ptr< SSL_CTX > ContextPointer
Definition: Context.h:29
void printWithExtras(std::ostream &) const
Definition: Io.cc:59
Security::ContextPointer createClientContext(bool setOptions)
generate a security client-context from these configured options
Definition: PeerOptions.cc:271
void MaybeGetSessionResumeData(const Security::SessionPointer &, Security::SessionStatePointer &data)
Definition: Session.cc:226
PeerConnector(const Comm::ConnectionPointer &aServerConn, const AsyncCallback< EncryptorAnswer > &, const AccessLogEntryPointer &alp, const time_t timeout=0)
AnyP::ProtocolVersion ProtocolVersion()
Protocol version to use in Http::Message structures wrapping FTP messages.
Definition: Elements.cc:24
#define STUB_RETVAL(x)
Definition: STUB.h:42
Security::LockingPointer< X509, X509_free_cpp, HardFun< int, X509 *, X509_up_ref > > CertPointer
Definition: forward.h:88
BlindPeerConnector(HttpRequestPointer &aRequest, const Comm::ConnectionPointer &aServerConn, const AsyncCallback< EncryptorAnswer > &aCallback, const AccessLogEntryPointer &alp, time_t timeout=0)
Definition: SBuf.h:93
a smart AsyncCall pointer for delivery of future results
void dumpCfg(std::ostream &, const char *pfx) const override
output squid.conf syntax with 'pfx' prefix on parameters for the stored settings
Abstraction layer for TCP, UDP, TLS, UDS and filedescriptor sockets.
Definition: AcceptLimiter.h:16
a summary a TLS I/O operation outcome
Definition: Io.h:19
HandshakeParser(MessageSource)
Definition: Handshake.cc:219
SBuf SubjectName(Certificate &)
The SubjectName field of the given certificate (if found) or an empty SBuf.
Definition: Certificate.cc:68
PeerOptions ProxyOutgoingConfig
configuration options for DIRECT server access
Definition: PeerOptions.cc:24
void printGist(std::ostream &) const
reports brief summary (on one line) suitable for low-level debugging
Definition: Io.cc:50
void SessionSendGoodbye(const Security::SessionPointer &)
send the shutdown/bye notice for an active TLS session.
Definition: Session.cc:200
bool SessionIsResumed(const Security::SessionPointer &)
whether the session is a resumed one
Definition: Session.cc:213
SessionPointer::element_type * ConnectionPointer
Definition: Io.cc:23
void loadFromFiles(const AnyP::PortCfg &, const char *portType)
load the contents of certFile and privateKeyFile into memory cert, pkey and chain
Definition: KeyData.cc:182
Definition: forward.h:14
TLS squid.conf settings for a remote server peer.
Definition: PeerOptions.h:25
void setPeerCertificate(const CertPointer &)
Definition: ErrorDetail.cc:490
ErrorDetail(ErrorCode err_no, const CertPointer &peer, const CertPointer &broken, const char *aReason=nullptr)
Definition: ErrorDetail.cc:466
void SetSessionCacheCallbacks(Security::ContextPointer &)
Setup the given TLS context with callbacks used to manage the session cache.
Definition: Session.cc:376
std::ostream & operator<<(std::ostream &, const EncryptorAnswer &)
Security::SessionPointer NewSessionObject(const Security::ContextPointer &)
Definition: Session.cc:90
#define STUB_RETREF(x)
Definition: STUB.h:52
void ForgetErrors()
clear any errors that a TLS library has accumulated in its global storage
Definition: Io.cc:71
bool parseHello(const SBuf &data)
Definition: Handshake.cc:641
SSL Connection
Definition: Session.h:49
SBuf IssuerName(Certificate &)
The Issuer field of the given certificate (if found) or an empty SBuf.
Definition: Certificate.cc:28
#define STUB
macro to stub a void function.
Definition: STUB.h:34
const char * ErrorNameFromCode(ErrorCode err, bool prefixRawCode=false)
Definition: ErrorDetail.cc:430
void maybeLog(const Connection &, const Acl::ChecklistFiller &)
(slowly checks logging preconditions and) logs if possible
Definition: KeyLogger.cc:22
bool CreateServerSession(const Security::ContextPointer &, const Comm::ConnectionPointer &, Security::PeerOptions &, const char *squidCtx)
Definition: Session.cc:194
Security::ContextPointer createBlankContext() const override
generate an unset security context object
bool IssuedBy(Certificate &cert, Certificate &issuer)
Definition: Certificate.cc:108
TLS squid.conf settings for a listening port.
Definition: ServerOptions.h:25
X509 Certificate
Definition: forward.h:79
std::shared_ptr< SSL > SessionPointer
Definition: Session.h:53
bool CreateClientSession(FuturePeerContext &, const Comm::ConnectionPointer &, const char *squidCtx)
Definition: Session.cc:183
std::unique_ptr< SSL_SESSION, HardFun< void, SSL_SESSION *, &SSL_SESSION_free > > SessionStatePointer
Definition: Session.h:55
#define STUB_NOP
Definition: STUB.h:38
IoResult Connect(Comm::Connection &transport)
establish a TLS connection over the specified from-Squid transport connection
Definition: Io.cc:226
CBDATA_NAMESPACED_CLASS_INIT(Security, BlindPeerConnector)
Security::ParsedOptions parsedOptions
Definition: PeerOptions.h:97
IoResult Accept(Comm::Connection &transport)
accept a TLS connection over the specified to-Squid transport connection
Definition: Io.cc:211
ServerOptions & operator=(const ServerOptions &)
interface for supplying additional information about a transaction failure
Definition: Detail.h:20
Network/connection security abstraction layer.
Definition: Connection.h:33
an interface for those capable of configuring an ACLFilledChecklist object
void parse_securePeerOptions(Security::PeerOptions *opt)
Definition: PeerOptions.cc:805
~EncryptorAnswer()
deletes error if it is still set
unsigned long LibErrorCode
TLS library-reported non-validation error.
Definition: forward.h:141
virtual void parse(const char *)
parse a TLS squid.conf option
Definition: PeerOptions.cc:33
void SetSessionResumeData(const Security::SessionPointer &, const Security::SessionStatePointer &)
Definition: Session.cc:247

 

Introduction

Documentation

Support

Miscellaneous