Module: JWA::Algorithms::KeyManagement::AesGcmKw

Included in:
A128GcmKw, A192GcmKw, A256GcmKw
Defined in:
lib/jwa/algorithms/key_management/aes_gcm_kw.rb

Instance Method Summary collapse

Instance Method Details

#decrypt(ciphertext, tag) ⇒ Object



19
20
21
22
# File 'lib/jwa/algorithms/key_management/aes_gcm_kw.rb', line 19

def decrypt(ciphertext, tag)
  cipher = self.class.cipher.new(@key, @iv)
  cipher.decrypt(ciphertext, '', tag)
end

#encrypt(plaintext) ⇒ Object



14
15
16
17
# File 'lib/jwa/algorithms/key_management/aes_gcm_kw.rb', line 14

def encrypt(plaintext)
  cipher = self.class.cipher.new(@key, @iv)
  cipher.encrypt(plaintext, '')
end

#initialize(key, iv = nil) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/jwa/algorithms/key_management/aes_gcm_kw.rb', line 5

def initialize(key, iv = nil)
  @key = key
  @iv = iv

  if @key.length != self.class.key_length
    raise ArgumentError, "Invalid Key. Expected length: #{self.class.key_length}. Actual: #{@key.length}."
  end
end