just-encrypt 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/just-encrypt.rb +28 -25
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: beff4b7cfe1691be48d32eb5ba98b5c34fbcd5ca6a81276d45e11224ca3a0d0a
4
- data.tar.gz: 2b4f19f6d72bc81a243e7ca7d32079d24f25f25849f090e188fc88e1712f1391
3
+ metadata.gz: d098863785faeea95dd4205e6cf623a8f543137716bfc007868ef19703a356d8
4
+ data.tar.gz: 4610a38974c0b379ce10978c26e49e2b51fb4ed5e155987dd0c0d196fa5979e9
5
5
  SHA512:
6
- metadata.gz: ab9a10269d80812e06af0c83d778a6c51772d14c1e2ead18c0b591e62b0d69a792dec1b6e7834ac99a2e3d6dbee022204da24e03a16b53bf3f8d59fa55afce12
7
- data.tar.gz: e5ff6273057c09298b6eb046a72f7a5d5cfed9c7db9360286e7f11982eb8b2a7e0662334d93df284ab699568aae11c7ef59c0683fbc493ecbc89bfacec522f75
6
+ metadata.gz: e3ec12b4be15f5bb2d128ff4cbf32e5d967b70b75f3e9b3c51149bc56697112c0d903676fbabdeb6a81075d46506eee4e336d7f37d0599ba1095ec166b52df50
7
+ data.tar.gz: eba123531b8270d4658cc86056d458ec329d5510ac5946b573e4fe7e68c679b4ba09528db3bb8e0100e93540233315f43bf86940966496a61bf5429f8cdd9308
@@ -1,36 +1,39 @@
1
1
  class JustEncrypt
2
2
  require 'base64'
3
3
  require 'openssl'
4
-
5
- def self.decrypt(data, cipher_key = nil)
6
- cipher = OpenSSL::Cipher.new 'aes-256-cbc'
4
+
5
+ def self.decrypt(base64_encrypted_text)
6
+ # cipher for encrypting/decrypting
7
+ secret = Rails.application.credentials.just_encrypt[:secret]
8
+ key = Digest::SHA1.hexdigest(secret).slice(0..31)
9
+ encrypted_text = Base64.decode64(base64_encrypted_text)
10
+ # set cipher for decryption
11
+ cipher = OpenSSL::Cipher.new("aes-256-cbc")
7
12
  cipher.decrypt
8
- cipher.key = Rails.application.credentials.just_encrypt[:secret]
9
- # Decryption Process
10
- unescaped = CGI.unescape(data) # Remove urlencode
11
- decoded = Base64.decode64(unescaped) # Decode from base64
12
- cipher.iv = decoded[0..15] # This corresponds to the first 16 characters of the received data
13
- decrypted = cipher.update(decoded[16..decoded.length - 1]) # First step for decrypt
14
- decrypted << cipher.final # Decryption finished
15
- timestamp = decrypted[-10..(decrypted.length - 1)].to_i
16
- # Return decrypted data
17
- decrypted[0..(decrypted.length - 11)]
13
+ cipher.key = key
14
+ cipher.iv = encrypted_text[0..15]
15
+
16
+ # decryption
17
+ decrypted = cipher.update(encrypted_text[16..encrypted_text.length-1])
18
+ decrypted << cipher.final
19
+ decrypted
18
20
  end
19
21
 
20
- def self.encrypt(raw_user_cod, cipher_key = nil)
21
- timestamp = Time.now.utc.to_i
22
+ def self.encrypt(text)
23
+ # cipher for encrypting/decrypting
22
24
  secret = Rails.application.credentials.just_encrypt[:secret]
23
- cipher = OpenSSL::Cipher.new('aes-256-cbc')
24
-
25
- iv = cipher.random_iv
25
+ key = Digest::SHA1.hexdigest(secret).slice(0..31)
26
+ # set cipher for encryption
27
+ cipher = OpenSSL::Cipher::AES256.new(:CBC)
26
28
  cipher.encrypt
27
- cipher.key = secret
28
-
29
- encrypted_data = cipher.update(raw_user_cod + timestamp.to_s)
30
- encrypted_data << cipher.final
31
- data = CGI.escape(Base64.strict_encode64(iv.to_s + encrypted_data))
32
-
33
- data
29
+ cipher.key = key
30
+ iv = cipher.random_iv
31
+ cipher.iv = iv
32
+
33
+ # encrypt the message
34
+ encrypted = cipher.update(text)
35
+ encrypted << cipher.final
36
+ Base64.encode64(iv + encrypted)
34
37
  end
35
38
  end
36
39
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: just-encrypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremías G.