File tree 2 files changed +27
-31
lines changed
2 files changed +27
-31
lines changed Original file line number Diff line number Diff line change 2
2
# frozen_string_literal: true
3
3
4
4
module TTTLS13
5
- module Refinements
6
- refine TTTLS13 ::Message ::Extensions do
7
- # @param ex_types [Array of TTTLS13::Message::ExtensionType]
8
- #
9
- # @return [TTTLS13::Message::Extensions] for EncodedClientHelloInner
10
- define_method ( :remove_and_replace! ) do |ex_types |
11
- # NOTE: sort external_extensions in descending order.
12
- tmp1 = filter { |k , _ | !ex_types . include? ( k ) }
13
- tmp2 = filter { |k , _ | ex_types . include? ( k ) } . sort
14
- clear
15
- tmp1 . each { |k , v | self [ k ] = v }
16
- tmp2 . each { |k , v | self [ k ] = v }
17
-
18
- # removing and replacing extensions from EncodedClientHelloInner
19
- # with a single "ech_outer_extensions"
20
- reduce ( Message ::Extensions . new ) do |acc , ( k , v ) |
21
- if ex_types . include? ( k ) &&
22
- !acc . include? ( Message ::ExtensionType ::ECH_OUTER_EXTENSIONS )
23
- outer_extensions = ( ex_types - ( ex_types - keys ) ) . sort
24
- acc [ Message ::ExtensionType ::ECH_OUTER_EXTENSIONS ] = \
25
- Message ::Extension ::ECHOuterExtensions . new ( outer_extensions )
26
- elsif !ex_types . include? ( k )
27
- acc [ k ] = v
28
- end
29
-
30
- acc
31
- end
32
- end
33
- end
34
- end
35
-
36
5
using Refinements
37
6
38
7
SUPPORTED_ECHCONFIG_VERSIONS = [ "\xfe \x0d " ] . freeze
Original file line number Diff line number Diff line change @@ -105,6 +105,33 @@ def <<(ex)
105
105
store ( ex . extension_type , ex )
106
106
end
107
107
108
+ # @param ex_types [Array of TTTLS13::Message::ExtensionType]
109
+ #
110
+ # @return [TTTLS13::Message::Extensions] for EncodedClientHelloInner
111
+ def remove_and_replace! ( ex_types )
112
+ # NOTE: sort external_extensions in descending order.
113
+ tmp1 = filter { |k , _ | !ex_types . include? ( k ) }
114
+ tmp2 = filter { |k , _ | ex_types . include? ( k ) } . sort
115
+ clear
116
+ tmp1 . each { |k , v | self [ k ] = v }
117
+ tmp2 . each { |k , v | self [ k ] = v }
118
+
119
+ # removing and replacing extensions from EncodedClientHelloInner
120
+ # with a single "ech_outer_extensions"
121
+ reduce ( Message ::Extensions . new ) do |acc , ( k , v ) |
122
+ if ex_types . include? ( k ) &&
123
+ !acc . include? ( Message ::ExtensionType ::ECH_OUTER_EXTENSIONS )
124
+ outer_extensions = ( ex_types - ( ex_types - keys ) ) . sort
125
+ acc [ Message ::ExtensionType ::ECH_OUTER_EXTENSIONS ] = \
126
+ Message ::Extension ::ECHOuterExtensions . new ( outer_extensions )
127
+ elsif !ex_types . include? ( k )
128
+ acc [ k ] = v
129
+ end
130
+
131
+ acc
132
+ end
133
+ end
134
+
108
135
class << self
109
136
private
110
137
You can’t perform that action at this time.
0 commit comments