class TTTLS13::Message::Extension::Cookie

Attributes

extension_type[R]

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

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

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

  return nil if binary.length < 2

  cookie_len = Convert.bin2i(binary.slice(0, 2))
  cookie = binary.slice(2, cookie_len)
  return nil unless cookie_len + 2 == binary.length &&
                    cookie_len <= 2**16 - 3

  Cookie.new(cookie)
end
new(cookie) click to toggle source

@param cookie [String]

@raise [TTTLS13::Error::ErrorAlerts]

# File lib/tttls1.3/message/extension/cookie.rb, line 15
def initialize(cookie)
  @extension_type = ExtensionType::COOKIE
  @cookie = cookie || ''
  raise Error::ErrorAlerts, :internal_error \
    if @cookie.length > 2**16 - 3
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/extension/cookie.rb, line 23
def serialize
  @extension_type + @cookie.prefix_uint16_length.prefix_uint16_length
end