class TTTLS13::CipherSuites

Public Class Methods

deserialize(binary) click to toggle source

@param binary [String]

@raise [TTTLS13::Error::ErrorAlerts]

@return [TTTLS13::CipherSuites]

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

  cipher_suites = []
  i = 0
  while i < binary.length
    raise Error::ErrorAlerts, :decode_error if i + 2 > binary.length

    cipher_suites << binary.slice(i, 2)
    i += 2
  end
  raise Error::ErrorAlerts, :decode_error unless i == binary.length

  CipherSuites.new(cipher_suites)
end
new(cipher_suites) click to toggle source

@param cipher_suites [Array of CipherSuite]

@example

CipherSuites.new([
  CipherSuite::TLS_AES_256_GCM_SHA384,
  CipherSuite::TLS_CHACHA20_POLY1305_SHA256,
  CipherSuite::TLS_AES_128_GCM_SHA256
])
Calls superclass method
# File lib/tttls1.3/cipher_suites.rb, line 84
def initialize(cipher_suites)
  super(cipher_suites)
end

Public Instance Methods

serialize() click to toggle source

@return [String]

# File lib/tttls1.3/cipher_suites.rb, line 89
def serialize
  join.prefix_uint16_length
end