Sha256: 108190dcc4e62da45d7e0941e4270890144e7b482a0ccdda3dcf9140ee823974

Contents?: true

Size: 862 Bytes

Versions: 2

Compression:

Stored size: 862 Bytes

Contents

# Flow.io (2017)
# Module uses rails engine for encrypt and decrypt

# example
# enc1 = Flow::SimpleCrypt.encrypt('foo')
# Flow::SimpleCrypt.encrypt(enc1)
#
# example with salt
# enc2 = Flow::SimpleCrypt.encrypt('bar', '127.0.0.1')
# Flow::SimpleCrypt.encrypt(enc2)              # raises error: ActiveSupport::MessageVerifier::InvalidSignature
# Flow::SimpleCrypt.encrypt(enc2, '127.0.0.1') # ok

module Flow::SimpleCrypt
  extend self

  def encrypt_base(salt)
    local_secret = Rails.application.secrets.secret_key_base[0,32]
    key          = ActiveSupport::KeyGenerator.new(local_secret).generate_key(salt || '', 32)

    ActiveSupport::MessageEncryptor.new(key)
  end

  def encrypt(raw_data, salt=nil)
    encrypt_base(salt).encrypt_and_sign(raw_data)
  end

  def decrypt(enc_data, salt=nil)
    encrypt_base(salt).decrypt_and_verify(enc_data)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flowcommerce-solidus-0.1.12 ./static/app/flow/flow/simple_crypt.rb
flowcommerce-solidus-0.1.11 ./static/app/flow/flow/simple_crypt.rb