license and AES

This commit is contained in:
Yan
2017-11-09 15:47:16 +06:30
parent 310ba78ef5
commit 09dcbaf9f2
3 changed files with 40 additions and 6 deletions

31
app/models/AESEncDec.rb Normal file
View File

@@ -0,0 +1,31 @@
require 'openssl'
require 'base64'
require 'uri'
class AESEncDec {
cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
def export_key
ENV['aes_key'] = cipher.key = cipher.random_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
end
def encrypt(data)
cipher.encrypt
cipher.key = ENV["aes_key"]
cipher.iv = ENV["aes_iv"]
encrypted = cipher.update(data) + cipher.final
encrypted = Base64.urlsafe_encode64(encrypted)
return encrypted
end
def decrypt
cipher.decrypt
cipher.key = ENV["aes_key"]
cipher.iv = ENV["aes_iv"]
# Start the decryption
decoded = Base64.urlsafe_decode64(encrypted)
decrypted = cipher.update(decoded) + cipher.final
end
}

View File

@@ -11,8 +11,9 @@
# if you're sharing your code publicly.
development:
secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61
provision_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk
secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61
aes_key: <%= ENV['aes_key'] %>
aes_iv: <%= ENV['aes_iv'] %>
test:
secret_key_base: 5c92143fd4a844fdaf8b22aba0cda22ef1fc68f1b26dd3d40656866893718ae5e58625b4c3a5dc86b04c8be0a505ec0ebc0be3bf52249a3d1e0c1334ee591cf0
@@ -20,6 +21,7 @@ test:
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: c4bc81065013f9a3506d385bcbd49586c42e586488144b0de90c7da36867de9fa880f46b5c4f86f0ce9b7c783bb5a73bdb0e5605a47716567294390e726d3e22
provision_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk
secret_key_base: c4bc81065013f9a3506d385bcbd49586c42e586488144b0de90c7da36867de9fa880f46b5c4f86f0ce9b7c783bb5a73bdb0e5605a47716567294390e726d3e22
aes_key: <%= ENV['aes_key'] %>
aes_iv: <%= ENV['aes_iv'] %>

View File

@@ -1,7 +1,7 @@
development:
server_mode: cloud #local
sx_provision_url: http://192.168.1.162:3005/api
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk
test:
sx_provision_url: secure.smartsales.asia/api
@@ -10,5 +10,6 @@ test:
# instead read values from the environment.
production:
server_mode: cloud
sx_provision_url: secure.smartsales.asia/api
sx_provision_url: secure.smartsales.asia/api
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk