Class: TTTLS13::Message::Extension::ECHOuterExtensions

Inherits:
Object
  • Object
show all
Defined in:
lib/tttls1.3/message/extension/ech_outer_extensions.rb

Overview

ExtensionType OuterExtensions<2..254>;

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(outer_extensions) ⇒ ECHOuterExtensions

Returns a new instance of ECHOuterExtensions.

Parameters:



13
14
15
16
# File 'lib/tttls1.3/message/extension/ech_outer_extensions.rb', line 13

def initialize(outer_extensions)
  @extension_type = ExtensionType::ECH_OUTER_EXTENSIONS
  @outer_extensions = outer_extensions
end

Instance Attribute Details

#extension_typeObject (readonly)

Returns the value of attribute extension_type.



10
11
12
# File 'lib/tttls1.3/message/extension/ech_outer_extensions.rb', line 10

def extension_type
  @extension_type
end

#outer_extensionsObject (readonly)

Returns the value of attribute outer_extensions.



10
11
12
# File 'lib/tttls1.3/message/extension/ech_outer_extensions.rb', line 10

def outer_extensions
  @outer_extensions
end

Class Method Details

.deserialize(binary) ⇒ TTTLS13::Message::Extensions::ECHOuterExtensions

Parameters:

  • binary (String)

Returns:

  • (TTTLS13::Message::Extensions::ECHOuterExtensions)

Raises:



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tttls1.3/message/extension/ech_outer_extensions.rb', line 31

def self.deserialize(binary)
  raise Error::ErrorAlerts, :internal_error if binary.nil?

  return nil if binary.length < 2

  exlist_len = Convert.bin2i(binary.slice(0, 1))
  i = 1
  outer_extensions = []
  while i < exlist_len + 1
    outer_extensions << binary.slice(i, 2)
    i += 2
  end
  return nil unless outer_extensions.length * 2 == exlist_len

  ECHOuterExtensions.new(outer_extensions)
end

Instance Method Details

#serializeString

Returns:

  • (String)

Raises:



21
22
23
24
# File 'lib/tttls1.3/message/extension/ech_outer_extensions.rb', line 21

def serialize
  binary = @outer_extensions.join.prefix_uint8_length
  @extension_type + binary.prefix_uint16_length
end