licensing

This commit is contained in:
Yan
2017-11-15 12:01:49 +06:30
parent 7c6153f16f
commit 12f75ff403
2 changed files with 44 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
class MyAesCrypt
@cipher = ""
def initialize
@cipher = OpenSSL::Cipher::Cipher.new(ENV["CIPHER_TYPE"])
end
def export_key(passphrase)
# We want a 256 bit key symetric key based on passphrase
digest = Digest::SHA256.new
key = digest.update(passphrase)
key = digest.digest
ENV['AES_KEY'] = cipher_key = key # stores the key in key, and also sets the generated key on the @cipher
ENV['AES_IV'] = cipher_iv = @cipher.random_iv # stores the iv in iv, and also sets the generated iv on the @cipher
return cipher_key, cipher_iv
end
private
def encrypt(data)
cipher.encrypt
cipher.key = ENV["aes_key"]
cipher.iv = ENV["aes_iv"]
encrypted = cipher.update(data) + cipher.final
encrypted = Base64.encode64(encrypted)
return encrypted
end
def decrypt(data)
cipher.decrypt
cipher.key = ENV["aes_key"]
cipher.iv = ENV["aes_iv"]
# Start the decryption
decoded = Base64.decode64(data)
decrypted = cipher.update(decoded) + cipher.final
return decrypted
end
end

6
config/initializers/secrets.rb Executable file
View File

@@ -0,0 +1,6 @@
config = YAML.load_file("#{Rails.root}/config/secrets.yml")
config.fetch(Rails.env, {}).each do |key, value|
ENV[key.upcase] = value.to_s
end
# SECRETS_CONFIG = YAML.load_file("#{Rails.root}/config/secrets.yml")[Rails.env]