Class: TTTLS13::Message::Extension::KeyShareEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/tttls1.3/message/extension/key_share.rb

Overview

rubocop: enable Metrics/ClassLength

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(group:, key_exchange: nil) ⇒ KeyShareEntry

Returns a new instance of KeyShareEntry.

Parameters:

Raises:



236
237
238
239
240
# 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

Instance Attribute Details

#groupObject (readonly)

Returns the value of attribute group.



229
230
231
# File 'lib/tttls1.3/message/extension/key_share.rb', line 229

def group
  @group
end

#key_exchangeObject (readonly)

Returns the value of attribute key_exchange.



230
231
232
# File 'lib/tttls1.3/message/extension/key_share.rb', line 230

def key_exchange
  @key_exchange
end

Instance Method Details

#serializeString

Returns:

  • (String)


258
259
260
261
262
263
264
265
# 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?Boolean

Returns:

  • (Boolean)


243
244
245
# 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?Boolean

Returns:

  • (Boolean)


253
254
255
# 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?Boolean

Returns:

  • (Boolean)


248
249
250
# 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