Class: EchSpec::Spec::Spec5_1_10::DuplicatedOuterExtensions

Inherits:
TTTLS13::Message::Extensions
  • Object
show all
Defined in:
lib/echspec/spec/5.1-10.rb

Instance Method Summary collapse

Instance Method Details

#remove_and_replace!(_) ⇒ TTTLS13::Message::Extensions

Returns for EncodedClientHelloInner.

Parameters:

  • _ (Array of TTTLS13::Message::ExtensionType)

Returns:

  • (TTTLS13::Message::Extensions)

    for EncodedClientHelloInner



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/echspec/spec/5.1-10.rb', line 156

def remove_and_replace!(_)
  outer_extensions = [TTTLS13::Message::ExtensionType::KEY_SHARE]
  tmp1 = filter { |k, _| !outer_extensions.include?(k) }
  tmp2 = filter { |k, _| outer_extensions.include?(k) }

  clear
  replaced = TTTLS13::Message::Extensions.new

  tmp1.each_value { |v| self << v; replaced << v }
  tmp2.each_value { |v| self << v }
  # key_share appears twice in OuterExtensions.
  replaced << TTTLS13::Message::Extension::ECHOuterExtensions.new(
    [TTTLS13::Message::ExtensionType::KEY_SHARE] * 2
  )
  replaced
end