proxygen
FizzConfig.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #pragma once
17 
19 #include <fizz/record/Types.h>
20 
21 namespace wangle {
22 
23 struct FizzConfig {
24  bool enableFizz{true};
25  std::vector<fizz::ProtocolVersion> supportedVersions;
26  std::vector<std::vector<fizz::CipherSuite>> supportedCiphers;
27  std::vector<fizz::SignatureScheme> supportedSigSchemes;
28  std::vector<fizz::NamedGroup> supportedGroups;
29  std::vector<fizz::PskKeyExchangeMode> supportedPskModes;
30  bool acceptEarlyData{false};
31  bool earlyDataFbOnly{false};
32 
34  std::vector<fizz::CertificateCompressionAlgorithm> supportedCompressionAlgorithms;
35 };
36 
38  bool enableFizz{false};
39  std::vector<fizz::ProtocolVersion> supportedVersions;
40  std::vector<fizz::CipherSuite> supportedCiphers;
41  std::vector<fizz::SignatureScheme> supportedSigSchemes;
42  std::vector<fizz::NamedGroup> supportedGroups;
43  std::vector<fizz::PskKeyExchangeMode> supportedPskModes;
44  bool sendEarlyData{false};
45 };
46 
48  bool enableTokenBinding{false};
49  std::vector<fizz::extensions::TokenBindingProtocolVersion> supportedVersions;
50  std::vector<fizz::extensions::TokenBindingKeyParameters>
52 };
53 
54 } // namespace wangle
std::vector< fizz::ProtocolVersion > supportedVersions
Definition: FizzConfig.h:39
std::vector< fizz::extensions::TokenBindingProtocolVersion > supportedVersions
Definition: FizzConfig.h:49
std::vector< fizz::extensions::TokenBindingKeyParameters > supportedKeyParameters
Definition: FizzConfig.h:51
std::vector< fizz::CertificateCompressionAlgorithm > supportedCompressionAlgorithms
Definition: FizzConfig.h:34
std::vector< fizz::NamedGroup > supportedGroups
Definition: FizzConfig.h:28
folly::Optional< uint16_t > maxRecord
Definition: FizzConfig.h:33
std::vector< fizz::SignatureScheme > supportedSigSchemes
Definition: FizzConfig.h:41
std::vector< std::vector< fizz::CipherSuite > > supportedCiphers
Definition: FizzConfig.h:26
std::vector< fizz::PskKeyExchangeMode > supportedPskModes
Definition: FizzConfig.h:43
std::vector< fizz::NamedGroup > supportedGroups
Definition: FizzConfig.h:42
std::vector< fizz::PskKeyExchangeMode > supportedPskModes
Definition: FizzConfig.h:29
std::vector< fizz::ProtocolVersion > supportedVersions
Definition: FizzConfig.h:25
std::vector< fizz::CipherSuite > supportedCiphers
Definition: FizzConfig.h:40
std::vector< fizz::SignatureScheme > supportedSigSchemes
Definition: FizzConfig.h:27