simple_encryptor 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/README.md +4 -5
- data/lib/simple_encryptor.rb +3 -4
- data/simple_encryptor.gemspec +3 -3
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fa951c8f025ae2c231d18b48b193e10210c0f1839efc15dda41f5949afae5661
|
4
|
+
data.tar.gz: e571c8e5d67e47ef34a94c561de206b2ce5730d1fa6b4930e4d48eebd45079e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e39d05be6d5846c7e87658097edc6ddc2ea68ec778e3f625c5b25bb13e431f3b61475a4750568ec4ff190dff1e0c8b6021f967074ab963b5ee06d0580b6e4e72
|
7
|
+
data.tar.gz: eb5a5f57fc98bb8afa8aea8f5711df06fc1437b1d7066c8442122c52530144c50094de8328bfa9c1f8d29e3682d6379957adac3adcb915750136d8c589a2ef7e
|
data/.gitignore
CHANGED
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
|
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
|
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
|
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
|
```
|
data/lib/simple_encryptor.rb
CHANGED
@@ -18,7 +18,7 @@ require 'base64'
|
|
18
18
|
#
|
19
19
|
class SimpleEncryptor
|
20
20
|
# Current lib version
|
21
|
-
VERSION = '0.0.
|
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,
|
33
|
+
def self.encrypt(secret, key, _ = "\0")
|
35
34
|
cipher = OpenSSL::Cipher.new(ENCRYPTION_TYPE).encrypt
|
36
35
|
|
37
36
|
cipher.key = key
|
38
|
-
|
37
|
+
iv = cipher.random_iv # initialisation vector
|
39
38
|
|
40
39
|
encrypted = cipher.update(secret) + cipher.final
|
41
40
|
encrypted = iv + encrypted
|
data/simple_encryptor.gemspec
CHANGED
@@ -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', '~>
|
26
|
-
spec.add_development_dependency 'byebug', '~>
|
27
|
-
spec.add_development_dependency 'inch', '
|
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.
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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:
|
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:
|
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
|
-
|
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
|