base64_token 1.0.2 → 2.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 279b1b72483b10a2cc53fee7c0ded0d2e9e7a5b0
4
- data.tar.gz: 54bc84bb0783a2e6115b1ff4f2d7218cbaa87442
2
+ SHA256:
3
+ metadata.gz: a052821e65848e2fc2c1ad7e166907d45f61f196f098cb2dc20758980b88ea04
4
+ data.tar.gz: dc0bfdf22294ed08bf7b6bea5441080cc9261688e8975fd53812ce26c72f3e4b
5
5
  SHA512:
6
- metadata.gz: 33436935a95084737e87b832d35cac6437f337a8f2cac9e478697f497675e4c67161d4a2e1bbeb321bdfe2cb0be95f6624eafebe0a11b350ba7d3f88535adb8d
7
- data.tar.gz: 0fb90e37cd68fa05ad7b67cd5b6ca6df90735d69c301a2b47b0ef8923c08d420e1e887338a87aabb943664a2d1e45ddbb19de17aa0cc5853631de183d0d90ee4
6
+ metadata.gz: 9da3e47cdf5e0ffa5e81be2280609892ba5a947ba0440fb50b6a60382981c879c72a0d758d15a281cb0ebc29274bdad088a8434b28868b598182a2857ca1eb89
7
+ data.tar.gz: 176ca5eda82a21d23cb80d108a94e6f77a95e4ffe9481d7d872a066709a4b908d9546e417aeae0f25e51695e51bf091b188eb5c2040427c0ac7feab79598c360
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,42 @@
1
+ image: ruby:3.1
2
+
3
+ stages:
4
+ - test
5
+ - publish
6
+
7
+ before_script:
8
+ - bundle config jobs 8
9
+ - bundle install --path=/tmp/bundler --quiet
10
+ - apt update && apt install -y libsodium-dev
11
+
12
+ rubocop:
13
+ stage: test
14
+ image: ruby:2.7
15
+ script:
16
+ - bundle exec rubocop
17
+
18
+ rspec_2.7:
19
+ stage: test
20
+ image: ruby:2.7
21
+ script:
22
+ - bundle exec rspec
23
+
24
+ rspec:
25
+ stage: test
26
+ script:
27
+ - bundle exec rspec
28
+
29
+ publish_gem:
30
+ stage: publish
31
+ script:
32
+ - mkdir -p ~/.gem
33
+ - |
34
+ cat << EOF > ~/.gem/credentials
35
+ ---
36
+ :rubygems_api_key: ${RUBYGEMS_API_KEY}
37
+ EOF
38
+ - chmod 0600 ~/.gem/credentials
39
+ - gem build base64_token.gemspec
40
+ - gem push $(find `pwd` -name "base64_token-*.gem")
41
+ only:
42
+ - main
data/.rubocop.yml CHANGED
@@ -1,59 +1,3 @@
1
- # We need to configure exemptions for blocks that we generally accept to be
2
- # long, since they are less comparable to methods and more comparable to
3
- # modules/classes.
4
- Metrics/BlockLength:
5
- ExcludedMethods:
6
- - describe
7
- - namespace
8
-
9
- Style/AsciiComments:
10
- Enabled: false
11
-
12
- Style/Documentation:
13
- Enabled: false
14
-
15
- # Encoding comments are not neccessary in all 2.x versions of ruby, since
16
- # UTF-8 has become the default encoding.
17
- Style/Encoding:
18
- EnforcedStyle: never
19
- Enabled: true
20
- Exclude:
21
- - '*.gemspec'
22
-
23
- # Ruby 2.3 introduced optional automatic freezing of string literals
24
- # This might become default in future versions.
25
- # For details on this feature see the internet, e.g. https://wyeworks.com/blog/2015/12/1/immutable-strings-in-ruby-2-dot-3
26
- Style/FrozenStringLiteralComment:
27
- EnforcedStyle: always
28
-
29
- # This cop tries to make you use module_funtion instead of extend self
30
- # This is bad because both have their own use-case and should not be used
31
- # and sometimes cannot be used to do the same thing
32
- Style/ModuleFunction:
33
- Enabled: false
34
-
35
- # While it is very often useful to separate numbers after every three digits
36
- # for readability, this mostly doesn't make sense if the number doesn't
37
- # represent an amount but rather an identifier. Thus the use of underscores
38
- # every three digits is recommended but not enforced.
39
- Style/NumericLiterals:
40
- Enabled: false
41
-
42
- # Do not force the same one letter variable names for all occurences of inject
43
- Style/SingleLineBlockParams:
44
- Enabled: false
45
-
46
- # No significant improvement in speed or memory usage apparent. Readability is
47
- # atrocious.
48
- Performance/Casecmp:
49
- Enabled: false
50
-
51
- # Not safe in a rails context, since Relation.count is != Enumerable.count
52
- Performance/Count:
53
- Enabled: false
54
-
55
- # Does not make sense when dealing with non-ActiveRecord like mongoid. That
56
- # Mongoid for example throws error if find_by returns nothing (but we expect
57
- # nil)
58
- Rails/FindBy:
59
- Enabled: false
1
+ inherit_gem:
2
+ aroundhome_cops:
3
+ - default.yml
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 2.0.0 (2022-10-24)
2
+
3
+ * Breaking: Update minimum versions of Ruby and RbNaCl
4
+ * This also drops support for `rbnacl-libsodium`, which means libsodium is now required
5
+ to be preinstalled on the OS level
6
+ * Note: `#generate` expects named parameters, not a hash (which is important for Ruby 2.7+)
7
+
1
8
  ## 1.0.2 (2018-02-23)
2
9
 
3
10
  * Use `Base.strict_encode64` to encode the secret key
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
4
 
4
5
  # Specify your gem's dependencies in base64_token.gemspec
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'bundler/gem_tasks'
3
4
  require 'rspec/core/rake_task'
4
5
 
data/base64_token.gemspec CHANGED
@@ -1,16 +1,17 @@
1
1
  # coding: utf-8
2
2
  # frozen_string_literal: true
3
- lib = File.expand_path('../lib', __FILE__)
3
+
4
+ lib = File.expand_path('lib', __dir__)
4
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
6
  require 'base64_token/version'
6
7
 
7
8
  Gem::Specification.new do |spec|
8
9
  spec.name = 'base64_token'
9
10
  spec.version = Base64Token::VERSION
10
- spec.authors = ['Beko Käuferportal GmbH']
11
- spec.email = ['oss@kaeuferportal.de']
11
+ spec.authors = ['be Around GmbH']
12
+ spec.email = ['oss@aroundhome.de']
12
13
  spec.summary = 'Encodes ruby hashes as encrypted and URL-safe tokens.'
13
- spec.homepage = 'https://github.com/kaeuferportal/base64_token'
14
+ spec.homepage = 'https://github.com/aroundhome/base64_token'
14
15
  spec.license = 'MIT'
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -20,13 +21,12 @@ Gem::Specification.new do |spec|
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
22
  spec.require_paths = ['lib']
22
23
 
23
- spec.required_ruby_version = '>= 2.1.0'
24
+ spec.required_ruby_version = '>= 2.7.0'
24
25
 
25
- spec.add_dependency 'rbnacl', '>= 3.0.0', '< 5.0'
26
- spec.add_dependency 'rbnacl-libsodium', '~> 1.0'
26
+ spec.add_dependency 'rbnacl', '>= 6.0.0', '< 8.0'
27
27
 
28
- spec.add_development_dependency 'bundler', '~> 1.13'
28
+ spec.add_development_dependency 'aroundhome_cops', '~> 4.0'
29
+ spec.add_development_dependency 'bundler', '~> 2.0'
29
30
  spec.add_development_dependency 'rake', '~> 10.0'
30
31
  spec.add_development_dependency 'rspec', '~> 3.0'
31
- spec.add_development_dependency 'rubocop', '0.47.1'
32
32
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Base64Token
3
- VERSION = '1.0.2'.freeze
4
+ VERSION = '2.0.0'
4
5
  end
data/lib/base64_token.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'base64'
3
4
  require 'base64_token/version'
4
5
  require 'json'
5
6
 
6
- require 'rbnacl/libsodium'
7
7
  require 'rbnacl'
8
8
 
9
9
  module Base64Token
@@ -19,9 +19,10 @@ module Base64Token
19
19
 
20
20
  def parse(token)
21
21
  return {} if !token || token.strip.empty?
22
+
22
23
  cipher = base64_decode(token)
23
24
  json = decrypt(cipher)
24
- JSON.parse(json).map { |k, v| [k.to_sym, v] }.to_h
25
+ JSON.parse(json).transform_keys(&:to_sym)
25
26
  end
26
27
 
27
28
  def generate_key
@@ -55,9 +56,7 @@ module Base64Token
55
56
 
56
57
  def crypto_box
57
58
  @crypto_box ||= begin
58
- unless @encryption_key
59
- raise ConfigurationError, 'Encryption key not set.'
60
- end
59
+ raise ConfigurationError, 'Encryption key not set.' unless @encryption_key
61
60
 
62
61
  key = Base64.decode64(@encryption_key)
63
62
  RbNaCl::SimpleBox.from_secret_key(key)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: base64_token
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Beko Käuferportal GmbH
7
+ - be Around GmbH
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-23 00:00:00.000000000 Z
11
+ date: 2022-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbnacl
@@ -16,48 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
19
+ version: 6.0.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.0'
22
+ version: '8.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 3.0.0
29
+ version: 6.0.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.0'
32
+ version: '8.0'
33
33
  - !ruby/object:Gem::Dependency
34
- name: rbnacl-libsodium
34
+ name: aroundhome_cops
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.0'
40
- type: :runtime
39
+ version: '4.0'
40
+ type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '4.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.13'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.13'
60
+ version: '2.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,15 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '3.0'
89
- - !ruby/object:Gem::Dependency
90
- name: rubocop
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - '='
94
- - !ruby/object:Gem::Version
95
- version: 0.47.1
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - '='
101
- - !ruby/object:Gem::Version
102
- version: 0.47.1
103
89
  description:
104
90
  email:
105
- - oss@kaeuferportal.de
91
+ - oss@aroundhome.de
106
92
  executables: []
107
93
  extensions: []
108
94
  extra_rdoc_files: []
109
95
  files:
110
96
  - ".gitignore"
97
+ - ".gitlab-ci.yml"
111
98
  - ".rspec"
112
99
  - ".rubocop.yml"
113
100
  - ".travis.yml"
@@ -121,7 +108,7 @@ files:
121
108
  - bin/setup
122
109
  - lib/base64_token.rb
123
110
  - lib/base64_token/version.rb
124
- homepage: https://github.com/kaeuferportal/base64_token
111
+ homepage: https://github.com/aroundhome/base64_token
125
112
  licenses:
126
113
  - MIT
127
114
  metadata: {}
@@ -133,15 +120,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
120
  requirements:
134
121
  - - ">="
135
122
  - !ruby/object:Gem::Version
136
- version: 2.1.0
123
+ version: 2.7.0
137
124
  required_rubygems_version: !ruby/object:Gem::Requirement
138
125
  requirements:
139
126
  - - ">="
140
127
  - !ruby/object:Gem::Version
141
128
  version: '0'
142
129
  requirements: []
143
- rubyforge_project:
144
- rubygems_version: 2.6.13
130
+ rubygems_version: 3.3.7
145
131
  signing_key:
146
132
  specification_version: 4
147
133
  summary: Encodes ruby hashes as encrypted and URL-safe tokens.