simple_encryptor 0.0.1 → 0.0.2

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
- SHA1:
3
- metadata.gz: 14f571709d79078ec82dfc47335e692130c0905c
4
- data.tar.gz: e942b385da133a8cd354a74019c2b543acbee90b
2
+ SHA256:
3
+ metadata.gz: fa951c8f025ae2c231d18b48b193e10210c0f1839efc15dda41f5949afae5661
4
+ data.tar.gz: e571c8e5d67e47ef34a94c561de206b2ce5730d1fa6b4930e4d48eebd45079e1
5
5
  SHA512:
6
- metadata.gz: 10a6c393578cd9dec8433c6fe2ac0ac54a4cfba911e7fc33265ac9fc7395f94fb731c655ce93accb5f67fddd9245f2762c1131ef41ab9c41723954674ff45c78
7
- data.tar.gz: ce909ba22ff946a06a9272b589fdf77378ecc27b2127ed662218b5b8f7cf66bc99d58380e6e9b953915d4d0bb22b3f91e97c029999282f5acf23b3748b399c5f
6
+ metadata.gz: e39d05be6d5846c7e87658097edc6ddc2ea68ec778e3f625c5b25bb13e431f3b61475a4750568ec4ff190dff1e0c8b6021f967074ab963b5ee06d0580b6e4e72
7
+ data.tar.gz: eb5a5f57fc98bb8afa8aea8f5711df06fc1437b1d7066c8442122c52530144c50094de8328bfa9c1f8d29e3682d6379957adac3adcb915750136d8c589a2ef7e
data/.gitignore CHANGED
@@ -86,3 +86,5 @@ Session.vim
86
86
  *~
87
87
  # auto-generated tag files
88
88
  tags
89
+
90
+ .vscode
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  > Simple, url-safe, opinionated string encryption
4
4
 
5
- What if you need just an encrypted string in an URL-safe format? All these hard decisions and cryptography terminology, dubious snippets from StackOverflow, comprehensive all-in-one gems with hundreds algorithms and use-cases can be quite confusing and give unnecessary overhead.
5
+ What if you need just an encrypted string in a URL-safe format? All these hard decisions and cryptography terminology, dubious snippets from StackOverflow, comprehensive all-in-one gems with hundreds of algorithms and use-cases can be quite confusing and give unnecessary overhead.
6
6
 
7
- `SimpleEncryptor` does exactly what it says on the tin — simply encrypts a string (symmetrically/asymmetrically, dependin on dynamic/static IV you provide) and returns it in URL-safe format you can use in your links if needed.
7
+ `SimpleEncryptor` does exactly what it says on the tin — simply encrypts a string and returns it in URL-safe format you can use in your links if needed.
8
8
 
9
9
  ## Installation
10
10
 
@@ -26,14 +26,13 @@ Or install it yourself as:
26
26
 
27
27
  ```ruby
28
28
  secret_key = 'foobarfoobarfoobarfoobarfoobarfo' # 32 byte string
29
- iv = 'foobarfoobarfoob' # 16 bit string (static/dynamic)
30
29
 
31
- SimpleEncryptor.encrypt('Bond, James Bond', secret_key, iv)
30
+ SimpleEncryptor.encrypt('Bond, James Bond', secret_key)
32
31
  # AES 256 CBC Openssl Encrypted String:
33
32
  # => Zm9vYmFyZm9vYmFyZm9vYhwQbII-Col3sO7re1_ypzvtSRkDot6MH5oNr0Q5ql6S
34
33
 
35
34
  SimpleEncryptor.decrypt(
36
- 'Zm9vYmFyZm9vYmFyZm9vYhwQbII-Col3sO7re1_ypzvtSRkDot6MH5oNr0Q5ql6S',
35
+ 'Zm9vYmFyZm9vYmFyZm9vYhwQbII-Col3sO7re1_ypzvtSRkDot6MH5oNr0Q5ql6S',
37
36
  secret_key
38
37
  ) # => 'Bond, James Bond'
39
38
  ```
@@ -18,7 +18,7 @@ require 'base64'
18
18
  #
19
19
  class SimpleEncryptor
20
20
  # Current lib version
21
- VERSION = '0.0.1'
21
+ VERSION = '0.0.2'
22
22
 
23
23
  # Encryption type to use (set as a constant since changing it without changing
24
24
  # code is unlikely)
@@ -28,14 +28,13 @@ class SimpleEncryptor
28
28
  #
29
29
  # @param [String] secret the massage to encrypt
30
30
  # @param [String] key secret key to encrypt message with (32 bytes)
31
- # @param [String] iv initialisation vector (16 bytes, shouldn't be cipher.random_iv for symmetrical cipher)
32
31
  #
33
32
  # @return [String] encrypted message (url-safe, Base64)
34
- def self.encrypt(secret, key, iv)
33
+ def self.encrypt(secret, key, _ = "\0")
35
34
  cipher = OpenSSL::Cipher.new(ENCRYPTION_TYPE).encrypt
36
35
 
37
36
  cipher.key = key
38
- cipher.iv = iv # initialisation vector
37
+ iv = cipher.random_iv # initialisation vector
39
38
 
40
39
  encrypted = cipher.update(secret) + cipher.final
41
40
  encrypted = iv + encrypted
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 1.16'
26
- spec.add_development_dependency 'byebug', '~> 9.1'
27
- spec.add_development_dependency 'inch', '~> 0.7'
25
+ spec.add_development_dependency 'bundler', '~> 2.0'
26
+ spec.add_development_dependency 'byebug', '~> 11.0'
27
+ spec.add_development_dependency 'inch', '>= 0.9.0.rc1'
28
28
  spec.add_development_dependency 'letters', '~> 0.4'
29
29
  spec.add_development_dependency 'rack', '~> 2.0'
30
30
  spec.add_development_dependency 'rake', '~> 12.2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_encryptor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - smileart
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-05 00:00:00.000000000 Z
11
+ date: 2019-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '9.1'
33
+ version: '11.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '9.1'
40
+ version: '11.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: inch
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0.7'
47
+ version: 0.9.0.rc1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0.7'
54
+ version: 0.9.0.rc1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: letters
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -204,8 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
204
  - !ruby/object:Gem::Version
205
205
  version: '0'
206
206
  requirements: []
207
- rubyforge_project:
208
- rubygems_version: 2.6.14
207
+ rubygems_version: 3.0.3
209
208
  signing_key:
210
209
  specification_version: 4
211
210
  summary: Simple, url-safe, opinionated string encryption