proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
Types.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018-present, Facebook, Inc.
3
* All rights reserved.
4
*
5
* This source code is licensed under the BSD-style license found in the
6
* LICENSE file in the root directory of this source tree.
7
*/
8
9
#include <
fizz/record/Types.h
>
10
#include <
folly/String.h
>
11
12
namespace
fizz
{
13
14
constexpr
Random
HelloRetryRequest::HrrRandom
;
15
16
ProtocolVersion
getRealDraftVersion
(
ProtocolVersion
version
) {
17
switch
(version) {
18
case
ProtocolVersion::tls_1_3
:
19
return
ProtocolVersion::tls_1_3
;
20
case
ProtocolVersion::tls_1_3_20
:
21
case
ProtocolVersion::tls_1_3_20_fb
:
22
return
ProtocolVersion::tls_1_3_20
;
23
case
ProtocolVersion::tls_1_3_21
:
24
case
ProtocolVersion::tls_1_3_21_fb
:
25
return
ProtocolVersion::tls_1_3_21
;
26
case
ProtocolVersion::tls_1_3_22
:
27
case
ProtocolVersion::tls_1_3_22_fb
:
28
return
ProtocolVersion::tls_1_3_22
;
29
case
ProtocolVersion::tls_1_3_23
:
30
case
ProtocolVersion::tls_1_3_23_fb
:
31
return
ProtocolVersion::tls_1_3_23
;
32
case
ProtocolVersion::tls_1_3_26
:
33
case
ProtocolVersion::tls_1_3_26_fb
:
34
return
ProtocolVersion::tls_1_3_26
;
35
case
ProtocolVersion::tls_1_3_28
:
36
return
ProtocolVersion::tls_1_3_28
;
37
default
:
38
throw
std::runtime_error(folly::to<std::string>(
39
"getRealDraftVersion() called with "
,
toString
(version)));
40
}
41
}
42
43
std::string
toString
(
ProtocolVersion
version
) {
44
switch
(version) {
45
case
ProtocolVersion::tls_1_0
:
46
return
"TLSv1.0"
;
47
case
ProtocolVersion::tls_1_1
:
48
return
"TLSv1.1"
;
49
case
ProtocolVersion::tls_1_2
:
50
return
"TLSv1.2"
;
51
case
ProtocolVersion::tls_1_3
:
52
return
"TLSv1.3"
;
53
case
ProtocolVersion::tls_1_3_20
:
54
return
"TLSv1.3-draft-20"
;
55
case
ProtocolVersion::tls_1_3_20_fb
:
56
return
"TLSv1.3-draft-20-fb"
;
57
case
ProtocolVersion::tls_1_3_21
:
58
return
"TLSv1.3-draft-21"
;
59
case
ProtocolVersion::tls_1_3_21_fb
:
60
return
"TLSv1.3-draft-21-fb"
;
61
case
ProtocolVersion::tls_1_3_22
:
62
return
"TLSv1.3-draft-22"
;
63
case
ProtocolVersion::tls_1_3_22_fb
:
64
return
"TLSv1.3-draft-22-fb"
;
65
case
ProtocolVersion::tls_1_3_23
:
66
return
"TLSv1.3-draft-23"
;
67
case
ProtocolVersion::tls_1_3_23_fb
:
68
return
"TLSv1.3-draft-23-fb"
;
69
case
ProtocolVersion::tls_1_3_26
:
70
return
"TLSv1.3-draft-26"
;
71
case
ProtocolVersion::tls_1_3_26_fb
:
72
return
"TLSv1.3-draft-26-fb"
;
73
case
ProtocolVersion::tls_1_3_28
:
74
return
"TLSv1.3-draft-28"
;
75
}
76
return
enumToHex
(version);
77
}
78
79
std::string
toString
(
ExtensionType
extType) {
80
switch
(extType) {
81
case
ExtensionType::server_name
:
82
return
"server_name"
;
83
case
ExtensionType::supported_groups
:
84
return
"supported_groups"
;
85
case
ExtensionType::signature_algorithms
:
86
return
"signature_algorithms"
;
87
case
ExtensionType::application_layer_protocol_negotiation
:
88
return
"application_layer_protocol_negotiation"
;
89
case
ExtensionType::token_binding
:
90
return
"token_binding"
;
91
case
ExtensionType::quic_transport_parameters
:
92
return
"quic_transport_parameters"
;
93
case
ExtensionType::key_share_old
:
94
return
"key_share_old"
;
95
case
ExtensionType::pre_shared_key
:
96
return
"pre_shared_key"
;
97
case
ExtensionType::early_data
:
98
return
"early_data"
;
99
case
ExtensionType::supported_versions
:
100
return
"supported_version"
;
101
case
ExtensionType::cookie
:
102
return
"cookie"
;
103
case
ExtensionType::psk_key_exchange_modes
:
104
return
"psk_key_exchange_modes"
;
105
case
ExtensionType::certificate_authorities
:
106
return
"certificate_authorities"
;
107
case
ExtensionType::post_handshake_auth
:
108
return
"post_handshake_auth"
;
109
case
ExtensionType::signature_algorithms_cert
:
110
return
"signature_algorithms_cert"
;
111
case
ExtensionType::key_share
:
112
return
"key_share"
;
113
case
ExtensionType::compress_certificate
:
114
return
"compress_certificate"
;
115
}
116
return
enumToHex
(extType);
117
}
118
119
std::string
toString
(
AlertDescription
alertDesc) {
120
switch
(alertDesc) {
121
case
AlertDescription::close_notify
:
122
return
"close_notify"
;
123
case
AlertDescription::end_of_early_data
:
124
return
"end_of_early_data"
;
125
case
AlertDescription::unexpected_message
:
126
return
"unexpected_message"
;
127
case
AlertDescription::bad_record_mac
:
128
return
"bad_record_mac"
;
129
case
AlertDescription::record_overflow
:
130
return
"record_overflow"
;
131
case
AlertDescription::handshake_failure
:
132
return
"handshake_failure"
;
133
case
AlertDescription::bad_certificate
:
134
return
"bad_certificate"
;
135
case
AlertDescription::unsupported_certificate
:
136
return
"unsupported_certificate"
;
137
case
AlertDescription::certificate_revoked
:
138
return
"certificate_revoked"
;
139
case
AlertDescription::certificate_expired
:
140
return
"certificate_expired"
;
141
case
AlertDescription::certificate_unknown
:
142
return
"certificate_unknown"
;
143
case
AlertDescription::illegal_parameter
:
144
return
"illegal_parameter"
;
145
case
AlertDescription::unknown_ca
:
146
return
"unknown_ca"
;
147
case
AlertDescription::access_denied
:
148
return
"access_denied"
;
149
case
AlertDescription::decode_error
:
150
return
"decode_error"
;
151
case
AlertDescription::decrypt_error
:
152
return
"decrypt_error"
;
153
case
AlertDescription::protocol_version
:
154
return
"protocol_version"
;
155
case
AlertDescription::insufficient_security
:
156
return
"insufficient_security"
;
157
case
AlertDescription::internal_error
:
158
return
"internal_error"
;
159
case
AlertDescription::inappropriate_fallback
:
160
return
"inappropriate_fallback"
;
161
case
AlertDescription::user_canceled
:
162
return
"user_canceled"
;
163
case
AlertDescription::missing_extension
:
164
return
"missing_extension"
;
165
case
AlertDescription::unsupported_extension
:
166
return
"unsupported_extension"
;
167
case
AlertDescription::certificate_unobtainable
:
168
return
"certificate_unobtainable"
;
169
case
AlertDescription::unrecognized_name
:
170
return
"unrecognized_name"
;
171
case
AlertDescription::bad_certificate_status_response
:
172
return
"bad_certificate_status_response"
;
173
case
AlertDescription::bad_certificate_hash_value
:
174
return
"bad_certificate_hash_value"
;
175
case
AlertDescription::unknown_psk_identity
:
176
return
"unknown_psk_identity"
;
177
case
AlertDescription::certificate_required
:
178
return
"certificate_required"
;
179
}
180
return
enumToHex
(alertDesc);
181
}
182
183
std::string
toString
(
CipherSuite
cipher
) {
184
switch
(cipher) {
185
case
CipherSuite::TLS_AES_128_GCM_SHA256
:
186
return
"TLS_AES_128_GCM_SHA256"
;
187
case
CipherSuite::TLS_AES_256_GCM_SHA384
:
188
return
"TLS_AES_256_GCM_SHA384"
;
189
case
CipherSuite::TLS_CHACHA20_POLY1305_SHA256
:
190
return
"TLS_CHACHA20_POLY1305_SHA256"
;
191
case
CipherSuite::TLS_AES_128_OCB_SHA256_EXPERIMENTAL
:
192
return
"TLS_AES_128_OCB_SHA256_EXPERIMENTAL"
;
193
}
194
return
enumToHex
(cipher);
195
}
196
197
std::string
toString
(
PskKeyExchangeMode
pskKeMode) {
198
switch
(pskKeMode) {
199
case
PskKeyExchangeMode::psk_ke
:
200
return
"psk_ke"
;
201
case
PskKeyExchangeMode::psk_dhe_ke
:
202
return
"psk_dhe_ke"
;
203
}
204
return
enumToHex
(pskKeMode);
205
}
206
207
std::string
toString
(
SignatureScheme
sigScheme) {
208
switch
(sigScheme) {
209
case
SignatureScheme::ecdsa_secp256r1_sha256
:
210
return
"ecdsa_secp256r1_sha256"
;
211
case
SignatureScheme::ecdsa_secp384r1_sha384
:
212
return
"ecdsa_secp384r1_sha384"
;
213
case
SignatureScheme::ecdsa_secp521r1_sha512
:
214
return
"ecdsa_secp521r1_sha512"
;
215
case
SignatureScheme::rsa_pss_sha256
:
216
return
"rsa_pss_sha256"
;
217
case
SignatureScheme::rsa_pss_sha384
:
218
return
"rsa_pss_sha384"
;
219
case
SignatureScheme::rsa_pss_sha512
:
220
return
"rsa_pss_sha512"
;
221
case
SignatureScheme::ed25519
:
222
return
"ed25519"
;
223
case
SignatureScheme::ed448
:
224
return
"ed448"
;
225
}
226
return
enumToHex
(sigScheme);
227
}
228
229
std::string
toString
(
NamedGroup
group
) {
230
switch
(group) {
231
case
NamedGroup::secp256r1
:
232
return
"secp256r1"
;
233
case
NamedGroup::secp384r1
:
234
return
"secp384r1"
;
235
case
NamedGroup::secp521r1
:
236
return
"secp521r1"
;
237
case
NamedGroup::x25519
:
238
return
"x25519"
;
239
}
240
return
enumToHex
(group);
241
}
242
243
std::string
toString
(
CertificateCompressionAlgorithm
algo) {
244
switch
(algo) {
245
case
CertificateCompressionAlgorithm::zlib
:
246
return
"zlib"
;
247
}
248
return
enumToHex
(algo);
249
}
250
}
// namespace fizz
fizz::CipherSuite::TLS_CHACHA20_POLY1305_SHA256
fizz::CipherSuite::TLS_AES_128_GCM_SHA256
fizz::SignatureScheme::rsa_pss_sha256
fizz::AlertDescription::protocol_version
fizz::toString
folly::StringPiece toString(StateEnum state)
Definition:
State.cpp:16
fizz::ProtocolVersion::tls_1_1
Types.h
fizz::ProtocolVersion::tls_1_3_26
fizz::HelloRetryRequest::HrrRandom
static constexpr Random HrrRandom
Definition:
Types.h:211
fizz::CertificateCompressionAlgorithm
CertificateCompressionAlgorithm
Definition:
Types.h:167
fizz::ProtocolVersion::tls_1_3_23_fb
fizz::ProtocolVersion::tls_1_3
fizz::NamedGroup::secp384r1
fizz::AlertDescription::certificate_unknown
fizz::ExtensionType::signature_algorithms
fizz::ProtocolVersion::tls_1_3_20
fizz::ProtocolVersion::tls_1_3_22
fizz::ProtocolVersion::tls_1_0
fizz::ExtensionType::early_data
fizz::ExtensionType::signature_algorithms_cert
fizz::NamedGroup
NamedGroup
Definition:
Types.h:302
fizz::SignatureScheme::ed448
fizz::enumToHex
std::string enumToHex(T enumValue)
Definition:
Types-inl.h:646
fizz::SignatureScheme
SignatureScheme
Definition:
Types.h:257
fizz::CipherSuite
CipherSuite
Definition:
Types.h:153
fizz::AlertDescription::internal_error
fizz::ExtensionType::quic_transport_parameters
fizz::AlertDescription::decode_error
fizz::SignatureScheme::ecdsa_secp521r1_sha512
fizz::AlertDescription::unexpected_message
fizz::HandshakeType::end_of_early_data
fizz::ExtensionType::compress_certificate
fizz::AlertDescription::handshake_failure
fizz::SignatureScheme::rsa_pss_sha384
fizz::ProtocolVersion::tls_1_3_20_fb
cipher
CipherSuite cipher
Definition:
ClientProtocol.cpp:1006
fizz::ExtensionType::supported_groups
fizz::ProtocolVersion
ProtocolVersion
Definition:
Types.h:24
Random
Definition:
SpookyHashV1Test.cpp:48
fizz::ProtocolVersion::tls_1_3_28
fizz::ExtensionType::certificate_authorities
version
ProtocolVersion version
Definition:
ClientProtocol.cpp:1005
fizz::AlertDescription
AlertDescription
Definition:
Types.h:119
fizz::AlertDescription::unrecognized_name
fizz::ExtensionType::token_binding
fizz::AlertDescription::close_notify
fizz::ProtocolVersion::tls_1_3_21
fizz::ExtensionType::key_share_old
fizz::AlertDescription::access_denied
fizz::AlertDescription::unknown_ca
fizz
Definition:
Actions.h:16
fizz::AlertDescription::user_canceled
fizz::ExtensionType::cookie
fizz::ProtocolVersion::tls_1_2
fizz::ProtocolVersion::tls_1_3_23
fizz::ExtensionType::post_handshake_auth
fizz::ExtensionType::key_share
fizz::AlertDescription::certificate_unobtainable
fizz::SignatureScheme::ecdsa_secp384r1_sha384
fizz::AlertDescription::insufficient_security
fizz::ExtensionType::psk_key_exchange_modes
fizz::SignatureScheme::ecdsa_secp256r1_sha256
fizz::SignatureScheme::ed25519
fizz::NamedGroup::secp521r1
fizz::ExtensionType::server_name
fizz::AlertDescription::bad_certificate
fizz::ExtensionType
ExtensionType
Definition:
Types.h:95
fizz::CipherSuite::TLS_AES_256_GCM_SHA384
group
Optional< NamedGroup > group
Definition:
ClientProtocol.cpp:1007
fizz::SignatureScheme::rsa_pss_sha512
fizz::NamedGroup::secp256r1
string
const char * string
Definition:
Conv.cpp:212
fizz::CertificateCompressionAlgorithm::zlib
fizz::AlertDescription::missing_extension
fizz::ExtensionType::application_layer_protocol_negotiation
fizz::PskKeyExchangeMode::psk_ke
fizz::ProtocolVersion::tls_1_3_26_fb
fizz::ProtocolVersion::tls_1_3_22_fb
fizz::ExtensionType::supported_versions
fizz::AlertDescription::bad_record_mac
fizz::getRealDraftVersion
ProtocolVersion getRealDraftVersion(ProtocolVersion version)
Definition:
Types.cpp:16
fizz::AlertDescription::unknown_psk_identity
fizz::AlertDescription::unsupported_certificate
fizz::AlertDescription::decrypt_error
fizz::AlertDescription::illegal_parameter
fizz::AlertDescription::certificate_expired
fizz::NamedGroup::x25519
fizz::PskKeyExchangeMode::psk_dhe_ke
fizz::AlertDescription::certificate_required
fizz::PskKeyExchangeMode
PskKeyExchangeMode
Definition:
Types.h:163
fizz::AlertDescription::certificate_revoked
fizz::AlertDescription::bad_certificate_status_response
fizz::AlertDescription::inappropriate_fallback
fizz::AlertDescription::bad_certificate_hash_value
String.h
fizz::AlertDescription::record_overflow
fizz::AlertDescription::unsupported_extension
fizz::CipherSuite::TLS_AES_128_OCB_SHA256_EXPERIMENTAL
fizz::ProtocolVersion::tls_1_3_21_fb
fizz::ExtensionType::pre_shared_key
proxygen
fizz
fizz
record
Types.cpp
Generated by
1.8.11