Handshake.h
Go to the documentation of this file.
64 typedef enum { atHelloNone = 0, atHelloStarted, atHelloReceived, atHelloDoneReceived, atNstReceived, atCcsReceived, atFinishReceived } ParserState;
#define RefCountable
The locking interface for use on Reference-Counted classes.
Definition: Lock.h:66
Definition: ProtocolVersion.h:24
Definition: BinaryTokenizer.h:47
SBuf parseSniExtension(const SBuf &extensionData) const
Definition: Handshake.cc:526
void parseHandshakeMessage()
Definition: Handshake.cc:347
void parseSupportedVersionsExtension(const SBuf &extensionData) const
RFC 8446 Section 4.2.1: SupportedVersions extension.
Definition: Handshake.cc:554
void parseVersion2Record()
Definition: Handshake.cc:231
void parseServerHelloHandshakeMessage(const SBuf &raw)
RFC 5246 Section 7.4.1.3. Server Hello.
Definition: Handshake.cc:509
YesNoNone expectingModernRecords
Whether to use TLS parser or a V2 compatible parser.
Definition: Handshake.h:128
void parseMessages()
parses one or more "higher-level protocol" frames of currentContentType
Definition: Handshake.cc:291
bool isSslv2Record(const SBuf &raw) const
Definition: Handshake.cc:244
MessageSource messageSource
whether we are parsing Server or Client TLS handshake messages
Definition: Handshake.h:84
bool parseRecordVersion2Try()
bool parseCompressionMethods(const SBuf &raw)
Definition: Handshake.cc:420
void skipMessage(const char *msgType)
Definition: Handshake.cc:632
HandshakeParser(MessageSource)
Definition: Handshake.cc:219
void parseCiphers(const SBuf &raw)
Definition: Handshake.cc:479
void parseClientHelloHandshakeMessage(const SBuf &raw)
Definition: Handshake.cc:405
Parser::BinaryTokenizer tkRecords
TLS record layer (parsing uninterpreted data)
Definition: Handshake.h:122
void parseChangeCipherCpecMessage()
Definition: Handshake.cc:314
void parseServerCertificates(const SBuf &raw)
void parseVersion2HandshakeMessage(const SBuf &raw)
Definition: Handshake.cc:389
void parseV23Ciphers(const SBuf &raw)
Definition: Handshake.cc:490
void parseApplicationDataMessage()
Definition: Handshake.cc:382
void parseExtensions(const SBuf &raw)
Definition: Handshake.cc:435
Definition: Handshake.h:23
AnyP::ProtocolVersion tlsSupportedVersion
Definition: Handshake.h:35
std::ostream & print(std::ostream &os) const
Prints to os stream a human readable form of TlsDetails object.
bool unsupportedExtensions
whether any unsupported by Squid extensions are used
Definition: Handshake.h:43
Definition: YesNoNone.h:29
bool Tls1p3orLater(const AnyP::ProtocolVersion &p)
whether the given TLS/SSL protocol is TLS v1.3 or later
Definition: Handshake.h:160
bool TlsFamilyProtocol(const AnyP::ProtocolVersion &version)
whether the given protocol belongs to the TLS/SSL group of protocols
Definition: Handshake.h:133
bool Tls1p2orEarlier(const AnyP::ProtocolVersion &p)
whether the given TLS/SSL protocol is TLS v1.2 or earlier, including SSL
Definition: Handshake.h:153
bool TlsVersionEarlierThan(const AnyP::ProtocolVersion &a, const AnyP::ProtocolVersion &b)
whether TLS/SSL protocol a precedes TLS/SSL protocol b
Definition: Handshake.h:140
std::ostream & operator<<(std::ostream &, const EncryptorAnswer &)
Definition: EncryptorAnswer.cc:20