class TTTLS13::Message::Extension::KeyShareEntry

rubocop: enable Metrics/ClassLength

Attributes

group[R]
key_exchange[R]

Public Class Methods

new(group:, key_exchange: nil) click to toggle source

@param group [TTTLS13::NamedGroup] @param key_exchange [String]

@raise [TTTLS13::Error::ErrorAlerts]

# File lib/tttls1.3/message/extension/key_share.rb, line 236
def initialize(group:, key_exchange: nil)
  @group = group || ''
  @key_exchange = key_exchange || ''
  raise Error::ErrorAlerts, :internal_error unless @group.length == 2
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/message/extension/key_share.rb, line 258
def serialize
  binary = ''
  binary += @group
  # KeyShareHelloRetryRequest doesn't have key_exchange.
  binary += @key_exchange.prefix_uint16_length \
    unless @key_exchange.empty?
  binary
end
valid_key_share_client_hello?() click to toggle source

@return [Boolean]

# File lib/tttls1.3/message/extension/key_share.rb, line 243
def valid_key_share_client_hello?
  @group.length == 2 && @key_exchange.length.positive?
end
valid_key_share_hello_retry_request?() click to toggle source

@return [Boolean]

# File lib/tttls1.3/message/extension/key_share.rb, line 253
def valid_key_share_hello_retry_request?
  @group.length == 2 && @key_exchange.empty?
end
valid_key_share_server_hello?() click to toggle source

@return [Boolean]

# File lib/tttls1.3/message/extension/key_share.rb, line 248
def valid_key_share_server_hello?
  @group.length == 2 && @key_exchange.length.positive?
end