Module: TTTLS13::Hpke

Defined in:
lib/tttls1.3/hpke.rb

Overview

NOTE: Hpke module is the adapter for ech_config using hpke-rb.

Defined Under Namespace

Modules: AeadId, KdfId, KemId

Class Method Summary collapse

Class Method Details

.aead_id2aead_cipher(aead_id) ⇒ Object



80
81
82
83
84
85
86
87
88
89
# File 'lib/tttls1.3/hpke.rb', line 80

def self.aead_id2aead_cipher(aead_id)
  case aead_id
  when AeadId::AES_128_GCM
    :aes_128_gcm
  when AeadId::AES_256_GCM
    :aes_256_gcm
  when AeadId::CHACHA20_POLY1305
    :chacha20_poly1305
  end
end

.aead_id2overhead_len(aead_id) ⇒ Object



71
72
73
74
75
76
77
78
# File 'lib/tttls1.3/hpke.rb', line 71

def self.aead_id2overhead_len(aead_id)
  case aead_id
  when AeadId::AES_128_GCM, AeadId::CHACHA20_POLY1305
    16
  when AeadId::AES_256_GCM
    32
  end
end

.kdf_id2kdf_hash(kdf_id) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/tttls1.3/hpke.rb', line 53

def self.kdf_id2kdf_hash(kdf_id)
  case kdf_id
  when KdfId::HKDF_SHA256
    :sha256
  when KdfId::HKDF_SHA384
    :sha384
  when KdfId::HKDF_SHA512
    :sha512
  end
end

.kem_curve_name2dhkem(kem_curve_name) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tttls1.3/hpke.rb', line 31

def self.kem_curve_name2dhkem(kem_curve_name)
  case kem_curve_name
  when :p_256
    HPKE::DHKEM::EC::P_256
  when :p_384
    HPKE::DHKEM::EC::P_384
  when :p_521
    HPKE::DHKEM::EC::P_521
  when :x25519
    HPKE::DHKEM::X25519
  when :x448
    HPKE::DHKEM::X448
  end
end

.kem_id2dhkem(kem_id) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tttls1.3/hpke.rb', line 16

def self.kem_id2dhkem(kem_id)
  case kem_id
  when KemId::P_256_SHA256
    %i[p_256 sha256]
  when KemId::P_384_SHA384
    %i[p_384 sha384]
  when KemId::P_521_SHA512
    %i[p_521 sha512]
  when KemId::X25519_SHA256
    %i[x25519 sha256]
  when KemId::X448_SHA512
    %i[x448 sha512]
  end
end