|
proxygen
|
Namespaces | |
| detail | |
| test | |
Classes | |
| class | AeadCookieCipher |
| class | AeadTicketCipher |
| class | AeadTokenCipher |
| class | AllowAllReplayReplayCache |
| struct | AppToken |
| class | AppTokenValidator |
| class | AsyncFizzServerT |
| struct | AttemptVersionFallback |
| class | CertManager |
| struct | ClockSkewTolerance |
| class | CookieCipher |
| struct | CookieState |
| class | DualTicketCipher |
| class | FizzServer |
| class | FizzServerContext |
| struct | HandshakeLogging |
| class | ReplayCache |
| struct | ReportEarlyHandshakeSuccess |
| struct | ReportHandshakeSuccess |
| struct | ResumptionState |
| class | ServerStateMachine |
| struct | ServerTypes |
| class | SlidingBloomReplayCache |
| class | State |
| struct | StatelessHelloRetryRequest |
| class | TicketCipher |
| struct | TicketCodec |
Typedefs | |
| using | MutateState = folly::Function< void(State &)> |
| using | Action = boost::variant< DeliverAppData, WriteToSocket, ReportHandshakeSuccess, ReportEarlyHandshakeSuccess, ReportError, MutateState, WaitForData, AttemptVersionFallback > |
| using | Actions = folly::small_vector< Action, 4 > |
| using | AsyncActions = boost::variant< Actions, folly::Future< Actions >> |
| using | AsyncFizzServer = AsyncFizzServerT< ServerStateMachine > |
| using | AES128CookieCipher = AeadCookieCipher< OpenSSLEVPCipher< AESGCM128 >, HkdfImpl< Sha256 >> |
| using | AES128TicketCipher = AeadTicketCipher< OpenSSLEVPCipher< AESGCM128 >, TicketCodec< CertificateStorage::X509 >, HkdfImpl< Sha256 >> |
| using | AES128TicketIdentityOnlyCipher = AeadTicketCipher< OpenSSLEVPCipher< AESGCM128 >, TicketCodec< CertificateStorage::IdentityOnly >, HkdfImpl< Sha256 >> |
Functions | |
| static std::string | getKeyFromIdent (const std::string &ident) |
| Buf | getStatelessHelloRetryRequest (ProtocolVersion version, CipherSuite cipher, folly::Optional< NamedGroup > group, Buf cookie) |
| static folly::Optional< NamedGroup > | getHrrGroup (const std::vector< NamedGroup > &supportedGroups, const ClientHello &chlo) |
| CookieState | getCookieState (const Factory &factory, const std::vector< ProtocolVersion > &supportedVersions, const std::vector< std::vector< CipherSuite >> &supportedCiphers, const std::vector< NamedGroup > &supportedGroups, const ClientHello &chlo, Buf appToken) |
| bool | looksLikeV2ClientHello (const folly::IOBufQueue &queue) |
| template<typename T > | |
| folly::Optional< T > | negotiate (const std::vector< std::vector< T >> &serverPref, const std::vector< T > &clientPref) |
| template<typename T > | |
| folly::Optional< T > | negotiate (const std::vector< T > &serverPref, const std::vector< T > &clientPref) |
| std::ostream & | operator<< (std::ostream &os, StateEnum state) |
| void | appendClientCertificate (CertificateStorage storage, const std::shared_ptr< const Cert > &cert, folly::io::Appender &appender) |
| std::shared_ptr< const Cert > | readClientCertificate (folly::io::Cursor &cursor) |
Variables | |
| static const int | kBitsPerByte = 0x8 |
| static const unsigned int | kBucketCount = 12 |
| static const unsigned int | kHashCount = 4 |
| using fizz::server::Action = typedef boost::variant< DeliverAppData, WriteToSocket, ReportHandshakeSuccess, ReportEarlyHandshakeSuccess, ReportError, MutateState, WaitForData, AttemptVersionFallback> |
| using fizz::server::Actions = typedef folly::small_vector<Action, 4> |
| using fizz::server::AES128CookieCipher = typedef AeadCookieCipher<OpenSSLEVPCipher<AESGCM128>, HkdfImpl<Sha256>> |
Definition at line 17 of file CookieTypes.h.
| using fizz::server::AES128TicketCipher = typedef AeadTicketCipher< OpenSSLEVPCipher<AESGCM128>, TicketCodec<CertificateStorage::X509>, HkdfImpl<Sha256>> |
Definition at line 22 of file TicketTypes.h.
| using fizz::server::AES128TicketIdentityOnlyCipher = typedef AeadTicketCipher< OpenSSLEVPCipher<AESGCM128>, TicketCodec<CertificateStorage::IdentityOnly>, HkdfImpl<Sha256>> |
Definition at line 26 of file TicketTypes.h.
| using fizz::server::AsyncActions = typedef boost::variant<Actions, folly::Future<Actions>> |
| using fizz::server::AsyncFizzServer = typedef AsyncFizzServerT<ServerStateMachine> |
Definition at line 136 of file AsyncFizzServer.h.
| using fizz::server::MutateState = typedef folly::Function<void(State&)> |
|
strong |
|
strong |
Different modes of operation for client authentication. The names are self- explanatory.
| Enumerator | |
|---|---|
| None | |
| Optional | |
| Required | |
Definition at line 43 of file FizzServerContext.h.
| Enumerator | |
|---|---|
| NotChecked | |
| NotReplay | |
| MaybeReplay | |
| DefinitelyReplay | |
Definition at line 17 of file ReplayCache.h.
|
strong |
| void fizz::server::appendClientCertificate | ( | CertificateStorage | storage, |
| const std::shared_ptr< const Cert > & | cert, | ||
| folly::io::Appender & | appender | ||
| ) |
Definition at line 26 of file TicketCodec.cpp.
References folly::IOBuf::copyBuffer(), folly::IOBuf::create(), folly::ssl::OpenSSLCertUtils::derEncode(), IdentityOnly, None, fizz::detail::write(), and X509.
Referenced by fizz::server::TicketCodec< Storage >::encode().
| CookieState fizz::server::getCookieState | ( | const Factory & | factory, |
| const std::vector< ProtocolVersion > & | supportedVersions, | ||
| const std::vector< std::vector< CipherSuite >> & | supportedCiphers, | ||
| const std::vector< NamedGroup > & | supportedGroups, | ||
| const ClientHello & | chlo, | ||
| Buf | appToken | ||
| ) |
Negotiate and compute the CookieState to use in response to a ClientHello. This must match the logic inside of the server state machine.
Definition at line 79 of file CookieCipher.cpp.
References fizz::server::CookieState::appToken, fizz::server::CookieState::chloHash, fizz::server::CookieState::cipher, cipher, fizz::ClientHello::cipher_suites, fizz::ClientHello::extensions, getHrrGroup(), fizz::server::CookieState::group, group, fizz::Factory::makeHandshakeContext(), folly::gen::move, negotiate(), fizz::HandshakeStruct< e, t >::originalEncoding, fizz::server::CookieState::version, and version.
Referenced by fizz::sm::getCertificateRequest(), fizz::server::AeadCookieCipher< AeadType, HkdfType >::getStatelessResponse(), and fizz::server::test::TEST_F().
|
static |
Definition at line 47 of file CookieCipher.cpp.
References fizz::ClientHello::extensions, negotiate(), folly::none, and folly::pushmi::operators::share.
Referenced by getCookieState().
|
static |
Definition at line 93 of file CertManager.cpp.
References string, and folly::toLowerAscii().
Referenced by fizz::server::CertManager::addCert(), and fizz::server::CertManager::addCertIdentity().
| Buf fizz::server::getStatelessHelloRetryRequest | ( | ProtocolVersion | version, |
| CipherSuite | cipher, | ||
| folly::Optional< NamedGroup > | group, | ||
| Buf | cookie | ||
| ) |
Build a stateless HelloRetryRequest. This is deterministic and will be used to reconstruct the handshake transcript when receiving the second ClientHello.
Definition at line 18 of file CookieCipher.cpp.
References cipher, fizz::HelloRetryRequest::cipher_suite, fizz::Cookie::cookie, folly::IOBuf::create(), fizz::encodeExtension(), fizz::encodeHandshake(), fizz::HelloRetryRequest::extensions, group, fizz::HelloRetryRequest::legacy_session_id_echo, fizz::HelloRetryRequest::legacy_version, folly::gen::move, fizz::HelloRetryRequestKeyShare::selected_group, fizz::ServerSupportedVersions::selected_version, fizz::tls_1_2, and version.
Referenced by fizz::server::AeadCookieCipher< AeadType, HkdfType >::getStatelessResponse(), fizz::sm::setupSchedulerAndContext(), and fizz::server::test::TEST().
| bool fizz::server::looksLikeV2ClientHello | ( | const folly::IOBufQueue & | queue | ) |
Definition at line 14 of file FizzServer.cpp.
References folly::IOBufQueue::empty(), folly::IOBufQueue::front(), and uint8_t.
Referenced by fizz::server::FizzServer< ActionMoveVisitor, SM >::newTransportData().
| folly::Optional<T> fizz::server::negotiate | ( | const std::vector< std::vector< T >> & | serverPref, |
| const std::vector< T > & | clientPref | ||
| ) |
Negotiate a parameter given a list of server preference tiers and a list of client preferences. Within a server preference tier the client preference will be respected.
Definition at line 22 of file Negotiator.h.
References folly::none.
Referenced by fizz::sm::getCertificate(), getCookieState(), fizz::extensions::TokenBindingServerExtension::getExtensions(), getHrrGroup(), fizz::sm::getResumptionState(), fizz::server::FizzServerContext::negotiateAlpn(), fizz::sm::negotiateCipher(), fizz::sm::negotiateGroup(), fizz::sm::negotiateVersion(), and fizz::server::test::TEST().
| folly::Optional<T> fizz::server::negotiate | ( | const std::vector< T > & | serverPref, |
| const std::vector< T > & | clientPref | ||
| ) |
Negotatiate a parameter given the server's preference. Client preference is ignored.
Definition at line 48 of file Negotiator.h.
References folly::none.
|
inline |
Definition at line 429 of file State.h.
References fizz::toString().
| std::shared_ptr< const Cert > fizz::server::readClientCertificate | ( | folly::io::Cursor & | cursor | ) |
Definition at line 47 of file TicketCodec.cpp.
References IdentityOnly, fizz::CertUtils::makePeerCert(), folly::gen::move, None, fizz::detail::read(), and X509.
Referenced by fizz::server::TicketCodec< Storage >::decode().
|
static |
Definition at line 29 of file SlidingBloomReplayCache.cpp.
|
static |
Definition at line 30 of file SlidingBloomReplayCache.cpp.
Referenced by fizz::server::SlidingBloomReplayCache::SlidingBloomReplayCache().
|
static |
Definition at line 31 of file SlidingBloomReplayCache.cpp.
Referenced by fizz::server::SlidingBloomReplayCache::SlidingBloomReplayCache().