Class: Melos::Crypto::CipherSuite
- Inherits:
-
Object
- Object
- Melos::Crypto::CipherSuite
- Defined in:
- lib/melos/crypto.rb
Defined Under Namespace
Modules: X25519, X448 Classes: EC, P256, P384, P521
Instance Attribute Summary collapse
-
#digest ⇒ Object
Returns the value of attribute digest.
-
#hpke ⇒ Object
Returns the value of attribute hpke.
-
#kdf ⇒ Object
Returns the value of attribute kdf.
-
#level ⇒ Object
Returns the value of attribute level.
-
#pkey ⇒ Object
Returns the value of attribute pkey.
Instance Method Summary collapse
-
#initialize(suite_id) ⇒ CipherSuite
constructor
A new instance of CipherSuite.
Constructor Details
#initialize(suite_id) ⇒ CipherSuite
Returns a new instance of CipherSuite.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/melos/crypto.rb', line 120 def initialize(suite_id) case suite_id when 1 # MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 @level = 128 @digest = OpenSSL::Digest.new('sha256') @hpke = HPKE.new(:x25519, :sha256, :sha256, :aes_128_gcm) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::X25519 when 2 # MLS_128_DHKEMP256_AES128GCM_SHA256_P256 @level = 128 @digest = OpenSSL::Digest.new('sha256') @hpke = HPKE.new(:p_256, :sha256, :sha256, :aes_128_gcm) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::P256 when 3 # MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519 @level = 128 @digest = OpenSSL::Digest.new('sha256') @hpke = HPKE.new(:x25519, :sha256, :sha256, :chacha20_poly1305) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::X25519 when 4 # MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448 @level = 256 @digest = OpenSSL::Digest.new('sha512') @hpke = HPKE.new(:x448, :sha512, :sha512, :aes_256_gcm) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::X448 when 5 # MLS_256_DHKEMP521_AES256GCM_SHA512_P521 @level = 256 @digest = OpenSSL::Digest.new('sha512') @hpke = HPKE.new(:p_521, :sha512, :sha512, :aes_256_gcm) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::P521 when 6 # MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448 @level = 256 @digest = OpenSSL::Digest.new('sha512') @hpke = HPKE.new(:x448, :sha512, :sha512, :chacha20_poly1305) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::X448 when 7 # MLS_256_DHKEMP384_AES256GCM_SHA384_P384 @level = 256 @digest = OpenSSL::Digest.new('sha384') @hpke = HPKE.new(:p_384, :sha384, :sha384, :aes_256_gcm) @kdf = @hpke.hkdf @pkey = Melos::Crypto::CipherSuite::P384 end end |
Instance Attribute Details
#digest ⇒ Object
Returns the value of attribute digest.
119 120 121 |
# File 'lib/melos/crypto.rb', line 119 def digest @digest end |
#hpke ⇒ Object
Returns the value of attribute hpke.
119 120 121 |
# File 'lib/melos/crypto.rb', line 119 def hpke @hpke end |
#kdf ⇒ Object
Returns the value of attribute kdf.
119 120 121 |
# File 'lib/melos/crypto.rb', line 119 def kdf @kdf end |
#level ⇒ Object
Returns the value of attribute level.
119 120 121 |
# File 'lib/melos/crypto.rb', line 119 def level @level end |
#pkey ⇒ Object
Returns the value of attribute pkey.
119 120 121 |
# File 'lib/melos/crypto.rb', line 119 def pkey @pkey end |