class OnnistuuFi::Signer

Attributes

key[RW]

Public Class Methods

new(_key, keycode) click to toggle source
# File lib/onnistuu_fi/signer.rb, line 8
def initialize(_key, keycode)
  self.key = Base64.decode64(keycode)
end

Public Instance Methods

decrypt(encrypted_data, iv) click to toggle source
# File lib/onnistuu_fi/signer.rb, line 24
def decrypt(encrypted_data, iv)
  return nil if encrypted_data.nil?
  encrypted_data = Base64.decode64(encrypted_data)
  iv = Base64.decode64(iv)
  aes = OpenSSL::Cipher.new('AES-256-CBC')
  aes.decrypt
  aes.key = key
  aes.iv = iv
  message = (aes.update(encrypted_data) + aes.final)
  JSON.load(message)
end
encrypt(message) click to toggle source
# File lib/onnistuu_fi/signer.rb, line 12
def encrypt(message)
  return nil if message.nil?

  iv = OpenSSL::Cipher::Cipher.new("AES-128-CBC").random_iv
  aes = OpenSSL::Cipher.new('AES-256-CBC')
  aes.encrypt
  aes.key = key
  aes.iv = iv
  encrypted_data = aes.update(JSON.dump(message)) + aes.final
  [Base64.encode64(iv), Base64.encode64(encrypted_data)]
end