class TTTLS13::Message::Alert

rubocop: enable Layout/HashAlignment

Attributes

description[R]
level[R]

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

@return [TTTLS13::Message::Alert]

# File lib/tttls1.3/message/alert.rb, line 70
def self.deserialize(binary)
  raise Error::ErrorAlerts, :internal_error if binary.nil?
  raise Error::ErrorAlerts, :decode_error unless binary.length == 2

  level = binary[0]
  description = binary[1]
  Alert.new(level: level, description: description)
end
new(level: nil, description:) click to toggle source

@param level [TTTLS13::Message::AlertLevel] @param description [String] value of ALERT_DESCRIPTION

# File lib/tttls1.3/message/alert.rb, line 49
def initialize(level: nil, description:)
  @level = level
  @description = description
  if @level.nil? && (@description == ALERT_DESCRIPTION[:user_canceled] ||
                     @description == ALERT_DESCRIPTION[:close_notify])
    @level = AlertLevel::WARNING
  elsif @level.nil?
    @level = AlertLevel::FATAL
  end
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/alert.rb, line 61
def serialize
  @level + @description
end
to_error() click to toggle source

@return [TTTLS13::Error::ErrorAlerts]

# File lib/tttls1.3/message/alert.rb, line 80
def to_error
  desc = ALERT_DESCRIPTION.invert[@description]
  Error::ErrorAlerts.new(desc)
end