glogin 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 302c85994fa5689ff82f08f821d0892d430c7039
4
- data.tar.gz: 32bd550af5206b0ce9da7479b7af9a9384150230
3
+ metadata.gz: a944ac6deb8753b6c83edcc20150d1974d96d1ea
4
+ data.tar.gz: fea64b30eee967e25f461adad50dd9ed1923ad32
5
5
  SHA512:
6
- metadata.gz: c66d2b9177784cea815e71c553aea234b45c10d75f9ecf08271cdc7cb4e19ed5144113845030093b58879c3052d21fdca14784e653b24c37cc9bf229905ecce4
7
- data.tar.gz: 445b3302576c02617dcf286f34d246d6b508567439c619626e822638e21cff154385612a7d7e108c078dd6d0a71b32978a0f41717386565c3daeedc670191da6
6
+ metadata.gz: a5e86b398154075886c5acedc521b6495e94ed65d78f1028193ae2f4b1e317c04009897f6a1d215c2d0159bf463528266b322a1d8cd1e246eae145d73b466f1e
7
+ data.tar.gz: b3448c5973ee4e6d6facb5afea166dc452dea49f5f824cde571719af0f51d1673ecb4f14512cb76077e627072a020f503cf30a54c2035ea1877e3d4c5f6df83a
@@ -17,3 +17,5 @@ Metrics/CyclomaticComplexity:
17
17
  Max: 10
18
18
  Metrics/PerceivedComplexity:
19
19
  Max: 10
20
+ Layout/EmptyLineAfterGuardClause:
21
+ Enabled: false
@@ -33,7 +33,7 @@ module GLogin
33
33
  # Codec
34
34
  #
35
35
  class Codec
36
- def initialize(secret)
36
+ def initialize(secret = '')
37
37
  raise 'Secret can\'t be nil' if secret.nil?
38
38
  @secret = secret
39
39
  end
@@ -60,13 +60,17 @@ module GLogin
60
60
 
61
61
  def encrypt(text)
62
62
  raise 'Text can\'t be nil' if text.nil?
63
- cpr = cipher
64
- cpr.encrypt
65
- cpr.key = digest
66
- salt = SecureRandom.base64(Random.rand(8..32))
67
- encrypted = cpr.update(salt + ' ' + text)
68
- encrypted << cpr.final
69
- Base64.encode64(encrypted.to_s).delete("\n")
63
+ if @secret.empty?
64
+ text
65
+ else
66
+ cpr = cipher
67
+ cpr.encrypt
68
+ cpr.key = digest
69
+ salt = SecureRandom.base64(Random.rand(8..32))
70
+ encrypted = cpr.update(salt + ' ' + text)
71
+ encrypted << cpr.final
72
+ Base64.encode64(encrypted.to_s).delete("\n")
73
+ end
70
74
  end
71
75
 
72
76
  def digest
@@ -24,5 +24,5 @@
24
24
  # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
25
25
  # License:: MIT
26
26
  module GLogin
27
- VERSION = '0.4.6'.freeze
27
+ VERSION = '0.4.7'.freeze
28
28
  end
@@ -56,4 +56,10 @@ class TestCodec < Minitest::Test
56
56
  GLogin::Codec.new('the key').decrypt('этот текст не был зашифрован')
57
57
  end
58
58
  end
59
+
60
+ def test_encrypts_and_decrypts_with_empty_key
61
+ crypt = GLogin::Codec.new
62
+ text = 'This is the text, дорогой друг!'
63
+ assert_equal(text, crypt.decrypt(crypt.encrypt(text)))
64
+ end
59
65
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glogin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-19 00:00:00.000000000 Z
11
+ date: 2018-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov