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:



205
206
207
208
209
# File 'lib/tttls1.3/message/extension/key_share.rb', line 205

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.



199
200
201
# File 'lib/tttls1.3/message/extension/key_share.rb', line 199

def group
  @group
end

#key_exchangeObject (readonly)

Returns the value of attribute key_exchange.



199
200
201
# File 'lib/tttls1.3/message/extension/key_share.rb', line 199

def key_exchange
  @key_exchange
end

Instance Method Details

#serializeString

Returns:

  • (String)


227
228
229
230
231
232
233
234
# File 'lib/tttls1.3/message/extension/key_share.rb', line 227

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)


212
213
214
# File 'lib/tttls1.3/message/extension/key_share.rb', line 212

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

#valid_key_share_hello_retry_request?Boolean

Returns:

  • (Boolean)


222
223
224
# File 'lib/tttls1.3/message/extension/key_share.rb', line 222

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

#valid_key_share_server_hello?Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/tttls1.3/message/extension/key_share.rb', line 217

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