Class: EchSpec::Spec::Spec5_1_10::ReferencedEncryptedClientHello

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<TTTLS13::Message::ExtensionType>)

Returns:

  • (TTTLS13::Message::Extensions)

    for EncodedClientHelloInner



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# File 'lib/echspec/spec/5.1-10.rb', line 178

def remove_and_replace!(_)
  outer_extensions = [TTTLS13::Message::ExtensionType::ENCRYPTED_CLIENT_HELLO]
  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 }
  # encrypted_client_hello appears in OuterExtensions.
  replaced << TTTLS13::Message::Extension::ECHOuterExtensions.new(
    [TTTLS13::Message::ExtensionType::ENCRYPTED_CLIENT_HELLO]
  )
  replaced
end