class TTTLS13::Message::Extension::PskKeyExchangeModes

Attributes

extension_type[R]
ke_modes[R]

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

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

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

  return nil if binary.empty?

  kem_len = Convert.bin2i(binary[0])
  ke_modes = []
  i = 1
  while i < kem_len + 1
    ke_modes << binary[i]
    i += 1
  end
  return nil unless kem_len + 1 == binary.length

  PskKeyExchangeModes.new(ke_modes)
end
new(ke_modes = []) click to toggle source

@param ke_modes [Array of PskKeyExchangeMode]

# File lib/tttls1.3/message/extension/psk_key_exchange_modes.rb, line 18
def initialize(ke_modes = [])
  @extension_type = ExtensionType::PSK_KEY_EXCHANGE_MODES
  @ke_modes = ke_modes || []
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/extension/psk_key_exchange_modes.rb, line 24
def serialize
  binary = @ke_modes.join.prefix_uint8_length

  @extension_type + binary.prefix_uint16_length
end