Class: TTTLS13::Message::Extension::CompressCertificate

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

Overview

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(algorithms) ⇒ CompressCertificate

Returns a new instance of CompressCertificate.



25
26
27
28
29
30
31
# File 'lib/tttls1.3/message/extension/compress_certificate.rb', line 25

def initialize(algorithms)
  @extension_type = ExtensionType::COMPRESS_CERTIFICATE
  @algorithms = algorithms || []
  raise Error::ErrorAlerts, :internal_error \
    if @algorithms.join.length < 2 ||
       @algorithms.join.length > 2**8 - 2
end

Instance Attribute Details

#algorithmsObject (readonly)

Returns the value of attribute algorithms.



17
18
19
# File 'lib/tttls1.3/message/extension/compress_certificate.rb', line 17

def algorithms
  @algorithms
end

#extension_typeObject (readonly)

Returns the value of attribute extension_type.



16
17
18
# File 'lib/tttls1.3/message/extension/compress_certificate.rb', line 16

def extension_type
  @extension_type
end

Class Method Details

.deserialize(binary) ⇒ TTTLS13::Message::Extension::CompressCertificate?

Parameters:

  • binary (String)

Returns:

Raises:



45
46
47
48
49
50
51
52
53
54
# File 'lib/tttls1.3/message/extension/compress_certificate.rb', line 45

def self.deserialize(binary)
  raise Error::ErrorAlerts, :internal_error if binary.nil?

  return nil if binary.length < 3

  al_len = Convert.bin2i(binary.slice(0, 1))
  return nil if binary.length != al_len + 1

  CompressCertificate.new(binary.slice(1, al_len + 1).scan(/.{2}/m))
end

Instance Method Details

#serializeString

Returns:

  • (String)


34
35
36
37
38
# File 'lib/tttls1.3/message/extension/compress_certificate.rb', line 34

def serialize
  binary = @algorithms.join.prefix_uint8_length

  @extension_type + binary.prefix_uint16_length
end