Skip to content

Commit 7f185fe

Browse files
authored
Merge pull request #100 from thekuwayama/ech_outer_extensions__9
[ech_outer_extensions] 9. refactor: mv testcase & using each_value
2 parents ee28984 + 44b567c commit 7f185fe

File tree

3 files changed

+39
-38
lines changed

3 files changed

+39
-38
lines changed

Diff for: lib/tttls1.3/message/extensions.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,12 @@ def remove_and_replace!(outer_extensions)
124124

125125
clear
126126
replaced = Message::Extensions.new
127-
tmp1.each { |_, v| self << v; replaced << v }
128-
tmp2.each { |_, v| self << v }
129127

128+
tmp1.each_value { |v| self << v; replaced << v }
129+
tmp2.each_value { |v| self << v }
130130
replaced << Message::Extension::ECHOuterExtensions.new(tmp2.keys) \
131131
unless tmp2.keys.empty?
132+
132133
replaced
133134
end
134135

Diff for: spec/ech_spec.rb

-36
Original file line numberDiff line numberDiff line change
@@ -119,40 +119,4 @@
119119
.to eq padding_encoded_ch_inner.length
120120
end
121121
end
122-
123-
context 'removing and replacing extensions from EncodedClientHelloInner' do
124-
let(:extensions) do
125-
extensions, = Client.new(nil, 'localhost').send(:gen_ch_extensions)
126-
extensions
127-
end
128-
129-
let(:no_key_share_exs) do
130-
Extensions.new(
131-
extensions.filter { |k, _| k != ExtensionType::KEY_SHARE }.values
132-
)
133-
end
134-
135-
it 'should be equal remove_and_replace! with []' do
136-
cloned = extensions.clone
137-
expect(extensions.remove_and_replace!([]))
138-
.to eq cloned
139-
end
140-
141-
it 'should be equal remove_and_replace! with [key_share]' do
142-
expected = extensions.filter { |k, _| k != ExtensionType::KEY_SHARE }
143-
expected[ExtensionType::ECH_OUTER_EXTENSIONS] = \
144-
Extension::ECHOuterExtensions.new([ExtensionType::KEY_SHARE])
145-
got = extensions.remove_and_replace!([ExtensionType::KEY_SHARE])
146-
expect(got.keys).to eq expected.keys
147-
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions)
148-
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
149-
end
150-
151-
it 'should be equal remove_and_replace! with no key_share extensions' \
152-
' & [key_share]' do
153-
cloned = no_key_share_exs.clone
154-
expect(no_key_share_exs.remove_and_replace!([ExtensionType::KEY_SHARE]))
155-
.to eq cloned
156-
end
157-
end
158122
end

Diff for: spec/extensions_spec.rb

+36
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,40 @@
182182
.to raise_error(ErrorAlerts)
183183
end
184184
end
185+
186+
context 'removing and replacing extensions from EncodedClientHelloInner' do
187+
let(:extensions) do
188+
extensions, = Client.new(nil, 'localhost').send(:gen_ch_extensions)
189+
extensions
190+
end
191+
192+
let(:no_key_share_exs) do
193+
Extensions.new(
194+
extensions.filter { |k, _| k != ExtensionType::KEY_SHARE }.values
195+
)
196+
end
197+
198+
it 'should be equal remove_and_replace! with []' do
199+
cloned = extensions.clone
200+
expect(extensions.remove_and_replace!([]))
201+
.to eq cloned
202+
end
203+
204+
it 'should be equal remove_and_replace! with [key_share]' do
205+
expected = extensions.filter { |k, _| k != ExtensionType::KEY_SHARE }
206+
expected[ExtensionType::ECH_OUTER_EXTENSIONS] = \
207+
Extension::ECHOuterExtensions.new([ExtensionType::KEY_SHARE])
208+
got = extensions.remove_and_replace!([ExtensionType::KEY_SHARE])
209+
expect(got.keys).to eq expected.keys
210+
expect(got[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions)
211+
.to eq expected[ExtensionType::ECH_OUTER_EXTENSIONS].outer_extensions
212+
end
213+
214+
it 'should be equal remove_and_replace! with no key_share extensions' \
215+
' & [key_share]' do
216+
cloned = no_key_share_exs.clone
217+
expect(no_key_share_exs.remove_and_replace!([ExtensionType::KEY_SHARE]))
218+
.to eq cloned
219+
end
220+
end
185221
end

0 commit comments

Comments
 (0)