35
35
import sun .security .util .HexDumpEncoder ;
36
36
37
37
enum SSLExtension implements SSLStringizer {
38
- // Extensions defined in RFC 6066
38
+ // Extensions defined in RFC 6066 (TLS Extensions: Extension Definitions)
39
39
CH_SERVER_NAME (0x0000 , "server_name" ,
40
40
SSLHandshake .CLIENT_HELLO ,
41
41
ProtocolVersion .PROTOCOLS_TO_13 ,
@@ -63,6 +63,7 @@ enum SSLExtension implements SSLStringizer {
63
63
null ,
64
64
null ,
65
65
ServerNameExtension .shStringizer ),
66
+
66
67
CH_MAX_FRAGMENT_LENGTH (0x0001 , "max_fragment_length" ,
67
68
SSLHandshake .CLIENT_HELLO ,
68
69
ProtocolVersion .PROTOCOLS_TO_13 ,
@@ -90,6 +91,7 @@ enum SSLExtension implements SSLStringizer {
90
91
MaxFragExtension .eeOnTradeConsumer ,
91
92
null ,
92
93
MaxFragExtension .maxFragLenStringizer ),
94
+
93
95
CLIENT_CERTIFICATE_URL (0x0002 , "client_certificate_url" ),
94
96
TRUSTED_CA_KEYS (0x0003 , "trusted_ca_keys" ),
95
97
TRUNCATED_HMAC (0x0004 , "truncated_hmac" ),
@@ -123,17 +125,17 @@ enum SSLExtension implements SSLStringizer {
123
125
null ,
124
126
CertStatusExtension .certStatusRespStringizer ),
125
127
126
- // extensions defined in RFC 4681
128
+ // Extensions defined in RFC 4681 (TLS User Mapping Extension)
127
129
USER_MAPPING (0x0006 , "user_mapping" ),
128
130
129
- // extensions defined in RFC 5878
131
+ // Extensions defined in RFC 5878 (TLS Authorization Extensions)
130
132
CLIENT_AUTHZ (0x0007 , "client_authz" ),
131
133
SERVER_AUTHZ (0x0008 , "server_authz" ),
132
134
133
- // extensions defined in RFC 5081
135
+ // Extensions defined in RFC 6091 (Using OpenPGP Keys for TLS Authentication)
134
136
CERT_TYPE (0x0009 , "cert_type" ),
135
137
136
- // extensions defined in RFC 4492 (ECC)
138
+ // Extensions defined in RFC 8422 (ECC Cipher Suites for TLS Versions 1.2 and Earlier )
137
139
CH_SUPPORTED_GROUPS (0x000A , "supported_groups" ,
138
140
SSLHandshake .CLIENT_HELLO ,
139
141
ProtocolVersion .PROTOCOLS_TO_13 ,
@@ -172,55 +174,16 @@ enum SSLExtension implements SSLStringizer {
172
174
null ,
173
175
ECPointFormatsExtension .epfStringizer ),
174
176
175
- // extensions defined in RFC 5054
177
+ // Extensions defined in RFC 5054 (Using the SRP Protocol for TLS Authentication)
176
178
SRP (0x000C , "srp" ),
177
179
178
- // extensions defined in RFC 5246
179
- CH_SIGNATURE_ALGORITHMS (0x000D , "signature_algorithms" ,
180
- SSLHandshake .CLIENT_HELLO ,
181
- ProtocolVersion .PROTOCOLS_12_13 ,
182
- SignatureAlgorithmsExtension .chNetworkProducer ,
183
- SignatureAlgorithmsExtension .chOnLoadConsumer ,
184
- SignatureAlgorithmsExtension .chOnLoadAbsence ,
185
- SignatureAlgorithmsExtension .chOnTradeConsumer ,
186
- SignatureAlgorithmsExtension .chOnTradeAbsence ,
187
- SignatureAlgorithmsExtension .ssStringizer ),
188
- CR_SIGNATURE_ALGORITHMS (0x000D , "signature_algorithms" ,
189
- SSLHandshake .CERTIFICATE_REQUEST ,
190
- ProtocolVersion .PROTOCOLS_OF_13 ,
191
- SignatureAlgorithmsExtension .crNetworkProducer ,
192
- SignatureAlgorithmsExtension .crOnLoadConsumer ,
193
- SignatureAlgorithmsExtension .crOnLoadAbsence ,
194
- SignatureAlgorithmsExtension .crOnTradeConsumer ,
195
- null ,
196
- SignatureAlgorithmsExtension .ssStringizer ),
197
-
198
- CH_SIGNATURE_ALGORITHMS_CERT (0x0032 , "signature_algorithms_cert" ,
199
- SSLHandshake .CLIENT_HELLO ,
200
- ProtocolVersion .PROTOCOLS_12_13 ,
201
- CertSignAlgsExtension .chNetworkProducer ,
202
- CertSignAlgsExtension .chOnLoadConsumer ,
203
- null ,
204
- CertSignAlgsExtension .chOnTradeConsumer ,
205
- null ,
206
- CertSignAlgsExtension .ssStringizer ),
207
- CR_SIGNATURE_ALGORITHMS_CERT (0x0032 , "signature_algorithms_cert" ,
208
- SSLHandshake .CERTIFICATE_REQUEST ,
209
- ProtocolVersion .PROTOCOLS_OF_13 ,
210
- CertSignAlgsExtension .crNetworkProducer ,
211
- CertSignAlgsExtension .crOnLoadConsumer ,
212
- null ,
213
- CertSignAlgsExtension .crOnTradeConsumer ,
214
- null ,
215
- CertSignAlgsExtension .ssStringizer ),
216
-
217
- // extensions defined in RFC 5764
180
+ // Extensions defined in RFC 5764 (DTLS Extension to Establish Keys for the SRTP)
218
181
USE_SRTP (0x000E , "use_srtp" ),
219
182
220
- // extensions defined in RFC 6520
183
+ // Extensions defined in RFC 6520 (TLS and DTLS Heartbeat Extension)
221
184
HEARTBEAT (0x000E , "heartbeat" ),
222
185
223
- // extension defined in RFC 7301 (ALPN )
186
+ // Extensions defined in RFC 7301 (TLS Application-Layer Protocol Negotiation Extension )
224
187
CH_ALPN (0x0010 , "application_layer_protocol_negotiation" ,
225
188
SSLHandshake .CLIENT_HELLO ,
226
189
ProtocolVersion .PROTOCOLS_TO_13 ,
@@ -249,7 +212,7 @@ enum SSLExtension implements SSLStringizer {
249
212
null ,
250
213
AlpnExtension .alpnStringizer ),
251
214
252
- // extensions defined in RFC 6961
215
+ // Extensions defined in RFC 6961 (TLS Multiple Certificate Status Request Extension)
253
216
CH_STATUS_REQUEST_V2 (0x0011 , "status_request_v2" ,
254
217
SSLHandshake .CLIENT_HELLO ,
255
218
ProtocolVersion .PROTOCOLS_TO_12 ,
@@ -269,20 +232,20 @@ enum SSLExtension implements SSLStringizer {
269
232
null ,
270
233
CertStatusExtension .certStatusReqV2Stringizer ),
271
234
272
- // extensions defined in RFC 6962
235
+ // Extensions defined in RFC 6962 (Certificate Transparency)
273
236
SIGNED_CERT_TIMESTAMP (0x0012 , "signed_certificate_timestamp" ),
274
237
275
- // extensions defined in RFC 7250
238
+ // Extensions defined in RFC 7250 (Using Raw Public Keys in TLS and DTLS)
276
239
CLIENT_CERT_TYPE (0x0013 , "client_certificate_type" ),
277
240
SERVER_CERT_TYPE (0x0014 , "server_certificate_type" ),
278
241
279
- // extensions defined in RFC 7685
242
+ // Extensions defined in RFC 7685 (TLS ClientHello Padding Extension)
280
243
PADDING (0x0015 , "padding" ),
281
244
282
- // extensions defined in RFC 7366
245
+ // Extensions defined in RFC 7366 (Encrypt-then-MAC for TLS and DTLS)
283
246
ENCRYPT_THEN_MAC (0x0016 , "encrypt_then_mac" ),
284
247
285
- // extensions defined in RFC 7627
248
+ // Extensions defined in RFC 7627 (TLS Session Hash and Extended Master Secret Extension)
286
249
CH_EXTENDED_MASTER_SECRET (0x0017 , "extended_master_secret" ,
287
250
SSLHandshake .CLIENT_HELLO ,
288
251
ProtocolVersion .PROTOCOLS_TO_12 ,
@@ -302,13 +265,13 @@ enum SSLExtension implements SSLStringizer {
302
265
null ,
303
266
ExtendedMasterSecretExtension .emsStringizer ),
304
267
305
- // extensions defined in RFC draft-ietf-tokbind-negotiation
306
- TOKEN_BINDING (0x0018 , "token_binding " ),
268
+ // Extensions defined in RFC 8472 (TLS Extension for Token Binding Protocol Negotiation)
269
+ TOKEN_BINDING (0x0018 , "token_binding" ),
307
270
308
- // extensions defined in RFC 7924
271
+ // Extensions defined in RFC 7924 (TLS Cached Information Extension)
309
272
CACHED_INFO (0x0019 , "cached_info" ),
310
273
311
- // extensions defined in RFC 5077
274
+ // Extensions defined in RFC 5077 (TLS Session Resumption without Server-Side State)
312
275
CH_SESSION_TICKET (0x0023 , "session_ticket" ,
313
276
SSLHandshake .CLIENT_HELLO ,
314
277
ProtocolVersion .PROTOCOLS_10_12 ,
@@ -319,7 +282,6 @@ enum SSLExtension implements SSLStringizer {
319
282
null ,
320
283
SessionTicketExtension .steStringizer ),
321
284
//null),
322
-
323
285
SH_SESSION_TICKET (0x0023 , "session_ticket" ,
324
286
SSLHandshake .SERVER_HELLO ,
325
287
ProtocolVersion .PROTOCOLS_10_12 ,
@@ -331,7 +293,26 @@ enum SSLExtension implements SSLStringizer {
331
293
SessionTicketExtension .steStringizer ),
332
294
//null),
333
295
334
- // extensions defined in TLS 1.3
296
+ // Extensions defined in RFC 8446 (TLS Protocol Version 1.3)
297
+ CH_SIGNATURE_ALGORITHMS (0x000D , "signature_algorithms" ,
298
+ SSLHandshake .CLIENT_HELLO ,
299
+ ProtocolVersion .PROTOCOLS_12_13 ,
300
+ SignatureAlgorithmsExtension .chNetworkProducer ,
301
+ SignatureAlgorithmsExtension .chOnLoadConsumer ,
302
+ SignatureAlgorithmsExtension .chOnLoadAbsence ,
303
+ SignatureAlgorithmsExtension .chOnTradeConsumer ,
304
+ SignatureAlgorithmsExtension .chOnTradeAbsence ,
305
+ SignatureAlgorithmsExtension .ssStringizer ),
306
+ CR_SIGNATURE_ALGORITHMS (0x000D , "signature_algorithms" ,
307
+ SSLHandshake .CERTIFICATE_REQUEST ,
308
+ ProtocolVersion .PROTOCOLS_OF_13 ,
309
+ SignatureAlgorithmsExtension .crNetworkProducer ,
310
+ SignatureAlgorithmsExtension .crOnLoadConsumer ,
311
+ SignatureAlgorithmsExtension .crOnLoadAbsence ,
312
+ SignatureAlgorithmsExtension .crOnTradeConsumer ,
313
+ null ,
314
+ SignatureAlgorithmsExtension .ssStringizer ),
315
+
335
316
CH_EARLY_DATA (0x002A , "early_data" ),
336
317
EE_EARLY_DATA (0x002A , "early_data" ),
337
318
NST_EARLY_DATA (0x002A , "early_data" ),
@@ -347,7 +328,6 @@ enum SSLExtension implements SSLStringizer {
347
328
SupportedVersionsExtension .chStringizer ),
348
329
SH_SUPPORTED_VERSIONS (0x002B , "supported_versions" ,
349
330
SSLHandshake .SERVER_HELLO ,
350
- // and HelloRetryRequest
351
331
ProtocolVersion .PROTOCOLS_OF_13 ,
352
332
SupportedVersionsExtension .shNetworkProducer ,
353
333
SupportedVersionsExtension .shOnLoadConsumer ,
@@ -406,7 +386,6 @@ enum SSLExtension implements SSLStringizer {
406
386
null ,
407
387
PskKeyExchangeModesExtension .chOnTradeAbsence ,
408
388
PskKeyExchangeModesExtension .pkemStringizer ),
409
-
410
389
CH_CERTIFICATE_AUTHORITIES (0x002F , "certificate_authorities" ,
411
390
SSLHandshake .CLIENT_HELLO ,
412
391
ProtocolVersion .PROTOCOLS_OF_13 ,
@@ -416,7 +395,6 @@ enum SSLExtension implements SSLStringizer {
416
395
null ,
417
396
null ,
418
397
CertificateAuthoritiesExtension .ssStringizer ),
419
-
420
398
CR_CERTIFICATE_AUTHORITIES (0x002F , "certificate_authorities" ,
421
399
SSLHandshake .CERTIFICATE_REQUEST ,
422
400
ProtocolVersion .PROTOCOLS_OF_13 ,
@@ -430,6 +408,25 @@ enum SSLExtension implements SSLStringizer {
430
408
OID_FILTERS (0x0030 , "oid_filters" ),
431
409
POST_HANDSHAKE_AUTH (0x0030 , "post_handshake_auth" ),
432
410
411
+ CH_SIGNATURE_ALGORITHMS_CERT (0x0032 , "signature_algorithms_cert" ,
412
+ SSLHandshake .CLIENT_HELLO ,
413
+ ProtocolVersion .PROTOCOLS_12_13 ,
414
+ CertSignAlgsExtension .chNetworkProducer ,
415
+ CertSignAlgsExtension .chOnLoadConsumer ,
416
+ null ,
417
+ CertSignAlgsExtension .chOnTradeConsumer ,
418
+ null ,
419
+ CertSignAlgsExtension .ssStringizer ),
420
+ CR_SIGNATURE_ALGORITHMS_CERT (0x0032 , "signature_algorithms_cert" ,
421
+ SSLHandshake .CERTIFICATE_REQUEST ,
422
+ ProtocolVersion .PROTOCOLS_OF_13 ,
423
+ CertSignAlgsExtension .crNetworkProducer ,
424
+ CertSignAlgsExtension .crOnLoadConsumer ,
425
+ null ,
426
+ CertSignAlgsExtension .crOnTradeConsumer ,
427
+ null ,
428
+ CertSignAlgsExtension .ssStringizer ),
429
+
433
430
CH_KEY_SHARE (0x0033 , "key_share" ,
434
431
SSLHandshake .CLIENT_HELLO ,
435
432
ProtocolVersion .PROTOCOLS_OF_13 ,
@@ -462,7 +459,7 @@ enum SSLExtension implements SSLStringizer {
462
459
null , null , null , null ,
463
460
KeyShareExtension .hrrStringizer ),
464
461
465
- // Extensions defined in RFC 5746
462
+ // Extensions defined in RFC 5746 (TLS Renegotiation Indication Extension)
466
463
CH_RENEGOTIATION_INFO (0xff01 , "renegotiation_info" ,
467
464
SSLHandshake .CLIENT_HELLO ,
468
465
ProtocolVersion .PROTOCOLS_TO_12 ,
@@ -482,7 +479,7 @@ enum SSLExtension implements SSLStringizer {
482
479
null ,
483
480
RenegoInfoExtension .rniStringizer ),
484
481
485
- // TLS 1.3 PSK extension must be last
482
+ // RFC 8446 ( TLS Protocol Version 1.3) PSK extension must be last
486
483
CH_PRE_SHARED_KEY (0x0029 , "pre_shared_key" ,
487
484
SSLHandshake .CLIENT_HELLO ,
488
485
ProtocolVersion .PROTOCOLS_OF_13 ,
0 commit comments