class TTTLS13::Message::EncryptedExtensions

Attributes

extensions[R]
msg_type[R]

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

@return [TTTLS13::Message::EncryptedExtensions]

# File lib/tttls1.3/message/encrypted_extensions.rb, line 44
def self.deserialize(binary)
  raise Error::ErrorAlerts, :internal_error if binary.nil?
  raise Error::ErrorAlerts, :decode_error if binary.length < 6
  raise Error::ErrorAlerts, :internal_error \
    unless binary[0] == HandshakeType::ENCRYPTED_EXTENSIONS

  ee_len = Convert.bin2i(binary.slice(1, 3))
  exs_len = Convert.bin2i(binary.slice(4, 2))
  extensions = Extensions.deserialize(binary.slice(6, exs_len),
                                      HandshakeType::ENCRYPTED_EXTENSIONS)
  raise Error::ErrorAlerts, :decode_error \
    unless exs_len + 2 == ee_len && exs_len + 6 == binary.length

  EncryptedExtensions.new(extensions)
end
new(extensions = Extensions.new) click to toggle source

@param extensions [TTTLS13::Message::Extensions]

# File lib/tttls1.3/message/encrypted_extensions.rb, line 27
def initialize(extensions = Extensions.new)
  @msg_type = HandshakeType::ENCRYPTED_EXTENSIONS
  @extensions = extensions || Extensions.new
end

Public Instance Methods

appearable_extensions?() click to toggle source

@return [Boolean]

# File lib/tttls1.3/message/encrypted_extensions.rb, line 61
def appearable_extensions?
  exs = @extensions.keys - APPEARABLE_EE_EXTENSIONS
  return true if exs.empty?

  !(exs - DEFINED_EXTENSIONS).empty?
end
fragment()
Alias for: serialize
serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/encrypted_extensions.rb, line 33
def serialize
  @msg_type + @extensions.serialize.prefix_uint24_length
end
Also aliased as: fragment