Class: ECHConfig::ECHConfigContents::HpkeKeyConfig::HpkeSymmetricCipherSuite

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb,
lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb

Overview

typed: false frozen_string_literal: true

Defined Under Namespace

Classes: HpkeAeadId, HpkeKdfId

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kdf_id, aead_id) ⇒ HpkeSymmetricCipherSuite

Returns a new instance of HpkeSymmetricCipherSuite.



15
16
17
18
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 15

def initialize(kdf_id, aead_id)
  @kdf_id = kdf_id
  @aead_id = aead_id
end

Instance Attribute Details

#aead_idObject (readonly)

Returns the value of attribute aead_id.



13
14
15
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 13

def aead_id
  @aead_id
end

#kdf_idObject (readonly)

Returns the value of attribute kdf_id.



13
14
15
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 13

def kdf_id
  @kdf_id
end

Class Method Details

.decode_vectors(octet) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 31

def self.decode_vectors(octet)
  i = 0
  cipher_suites = []
  while i < octet.length
    raise ::ECHConfig::DecodeError if i + 4 > octet.length

    kdf_id = HpkeKdfId.decode(octet.slice(i, 2) || '')
    aead_id = HpkeAeadId.decode(octet.slice(i + 2, 2) || '')
    i += 4
    cipher_suites << new(kdf_id, aead_id)
  end

  cipher_suites
end

Instance Method Details

#==(other) ⇒ Object



26
27
28
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 26

def ==(other)
  other.kdf_id == @kdf_id && other.aead_id == @aead_id
end

#encodeObject



21
22
23
# File 'lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb', line 21

def encode
  @kdf_id.encode + @aead_id.encode
end