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:



234
235
236
237
238
# File 'lib/tttls1.3/message/extension/key_share.rb', line 234

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.



227
228
229
# File 'lib/tttls1.3/message/extension/key_share.rb', line 227

def group
  @group
end

#key_exchangeObject (readonly)

Returns the value of attribute key_exchange.



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

def key_exchange
  @key_exchange
end

Instance Method Details

#serializeString

Returns:

  • (String)


256
257
258
259
260
261
262
263
# File 'lib/tttls1.3/message/extension/key_share.rb', line 256

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)


241
242
243
# File 'lib/tttls1.3/message/extension/key_share.rb', line 241

def valid_key_share_client_hello?
  @group.length == 2 && @key_exchange.length.positive?
end

#valid_key_share_hello_retry_request?Boolean

Returns:

  • (Boolean)


251
252
253
# File 'lib/tttls1.3/message/extension/key_share.rb', line 251

def valid_key_share_hello_retry_request?
  @group.length == 2 && @key_exchange.empty?
end

#valid_key_share_server_hello?Boolean

Returns:

  • (Boolean)


246
247
248
# File 'lib/tttls1.3/message/extension/key_share.rb', line 246

def valid_key_share_server_hello?
  @group.length == 2 && @key_exchange.length.positive?
end