class TTTLS13::Message::Extension::RecordSizeLimit

Attributes

extension_type[R]
record_size_limit[R]

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

@return [TTTLS13::Message::Extensions::RecordSizeLimit, nil]

# File lib/tttls1.3/message/extension/record_size_limit.rb, line 34
def self.deserialize(binary)
  raise Error::ErrorAlerts, :internal_error if binary.nil?

  return nil if binary.length != 2

  record_size_limit = Convert.bin2i(binary)
  raise Error::ErrorAlerts, :illegal_parameter if record_size_limit < 64

  RecordSizeLimit.new(record_size_limit)
end
new(record_size_limit) click to toggle source

@param record_size_limit [Integer]

@raise [TTTLS13::Error::ErrorAlerts]

# File lib/tttls1.3/message/extension/record_size_limit.rb, line 15
def initialize(record_size_limit)
  @extension_type = ExtensionType::RECORD_SIZE_LIMIT
  @record_size_limit = record_size_limit
  raise Error::ErrorAlerts, :internal_error \
    if @record_size_limit < 64 || @record_size_limit > 2**14 + 1
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/extension/record_size_limit.rb, line 23
def serialize
  binary = @record_size_limit.to_uint16

  @extension_type + binary.prefix_uint16_length
end