Module: CiderCi::OpenSession::Encryptor

Extended by:
Encryptor
Includes:
Encoder
Included in:
Encryptor
Defined in:
lib/cider_ci/open_session/encryptor.rb

Instance Method Summary collapse

Methods included from Encoder

#decode, #encode

Instance Method Details

#decrypt(secret, encrypted_message) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/cider_ci/open_session/encryptor.rb', line 13

def decrypt(secret, encrypted_message)
  cipher = create_cipher :decrypt, secret
  iv, encrypted_data = encrypted_message.split('~').map { |m| decode(m) }
  cipher.iv = iv
  decrypted_data = cipher.update(encrypted_data)
  decrypted_data << cipher.final
  JSON.parse(decrypted_data)
end

#encrypt(secret, message_object) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/cider_ci/open_session/encryptor.rb', line 22

def encrypt(secret, message_object)
  cipher = create_cipher :encrypt, secret
  iv = cipher.random_iv
  encrypted_data = cipher.update(message_object.to_json)
  encrypted_data << cipher.final
  "#{encode iv}~#{encode encrypted_data}"
end