attr_keyring 0.5.0 → 0.5.1
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 +4 -4
- data/.gitignore +1 -0
- data/lib/attr_keyring/active_record.rb +3 -1
- data/lib/attr_keyring/version.rb +1 -1
- data/lib/keyring/key.rb +16 -13
- metadata +3 -5
- data/Gemfile.lock +0 -101
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2fdee29d790a2b8e6f3dedbe485e3f01eafc6ff1c076e6845aac1b321f3b9e18
         | 
| 4 | 
            +
              data.tar.gz: afc222122dd43e545173656e9c93f7a8f39e1fdf51d403ce857d3796cbedcc50
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: cf8a11057e8802e993ade45fea165daafd6d8d1c6a6719bef14c42391e9f6879b407fa4735c1f97374daa76b4942effc6264d4d431347938b7c6599bebd25cdd
         | 
| 7 | 
            +
              data.tar.gz: 1c7b23f681512d0bca2ad00d1f4650dc0c84d7b048c5b129ddbd94fe972f42d076a0d22c9c2cdfdeefb573ece82f298a3c8e9e2567deb50481322ed1023355e7
         | 
    
        data/.gitignore
    CHANGED
    
    
| @@ -17,11 +17,13 @@ module AttrKeyring | |
| 17 17 | 
             
                  target.prepend(
         | 
| 18 18 | 
             
                    Module.new do
         | 
| 19 19 | 
             
                      def reload(options = nil)
         | 
| 20 | 
            -
                        super
         | 
| 20 | 
            +
                        instance = super
         | 
| 21 21 |  | 
| 22 22 | 
             
                        self.class.encrypted_attributes.each do |attribute|
         | 
| 23 23 | 
             
                          clear_decrypted_column_cache(attribute)
         | 
| 24 24 | 
             
                        end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                        instance
         | 
| 25 27 | 
             
                      end
         | 
| 26 28 | 
             
                    end
         | 
| 27 29 | 
             
                  )
         | 
    
        data/lib/attr_keyring/version.rb
    CHANGED
    
    
    
        data/lib/keyring/key.rb
    CHANGED
    
    | @@ -5,26 +5,17 @@ module Keyring | |
| 5 5 | 
             
                def initialize(id, key, key_size)
         | 
| 6 6 | 
             
                  @id = Integer(id)
         | 
| 7 7 | 
             
                  @key_size = key_size
         | 
| 8 | 
            -
                  @encryption_key, @signing_key =  | 
| 8 | 
            +
                  @encryption_key, @signing_key = parse_key(key)
         | 
| 9 9 | 
             
                end
         | 
| 10 10 |  | 
| 11 11 | 
             
                def to_s
         | 
| 12 | 
            -
                  "#< | 
| 12 | 
            +
                  "#<Keyring::Key id=#{id.inspect}>"
         | 
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
                alias_method :inspect, :to_s
         | 
| 15 15 |  | 
| 16 | 
            -
                private def  | 
| 16 | 
            +
                private def parse_key(key)
         | 
| 17 17 | 
             
                  expected_key_size = @key_size * 2
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                  secret = if key.bytesize == expected_key_size
         | 
| 20 | 
            -
                             key
         | 
| 21 | 
            -
                           else
         | 
| 22 | 
            -
                             begin
         | 
| 23 | 
            -
                               Base64.strict_decode64(key)
         | 
| 24 | 
            -
                             rescue ArgumentError
         | 
| 25 | 
            -
                               Base64.decode64(key)
         | 
| 26 | 
            -
                             end
         | 
| 27 | 
            -
                           end
         | 
| 18 | 
            +
                  secret = decode_key(key, expected_key_size)
         | 
| 28 19 |  | 
| 29 20 | 
             
                  raise InvalidSecret, "Secret must be #{expected_key_size} bytes, instead got #{secret.bytesize}" unless secret.bytesize == expected_key_size
         | 
| 30 21 |  | 
| @@ -33,5 +24,17 @@ module Keyring | |
| 33 24 |  | 
| 34 25 | 
             
                  [encryption_key, signing_key]
         | 
| 35 26 | 
             
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                private def decode_key(key, key_size)
         | 
| 29 | 
            +
                  if key.bytesize == key_size
         | 
| 30 | 
            +
                    key
         | 
| 31 | 
            +
                  else
         | 
| 32 | 
            +
                    begin
         | 
| 33 | 
            +
                      Base64.strict_decode64(key)
         | 
| 34 | 
            +
                    rescue ArgumentError
         | 
| 35 | 
            +
                      Base64.decode64(key)
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 36 39 | 
             
              end
         | 
| 37 40 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: attr_keyring
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Nando Vieira
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2019-03-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activerecord
         | 
| @@ -176,7 +176,6 @@ files: | |
| 176 176 | 
             
            - ".travis.yml"
         | 
| 177 177 | 
             
            - CODE_OF_CONDUCT.md
         | 
| 178 178 | 
             
            - Gemfile
         | 
| 179 | 
            -
            - Gemfile.lock
         | 
| 180 179 | 
             
            - LICENSE.txt
         | 
| 181 180 | 
             
            - README.md
         | 
| 182 181 | 
             
            - Rakefile
         | 
| @@ -214,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 214 213 | 
             
                - !ruby/object:Gem::Version
         | 
| 215 214 | 
             
                  version: '0'
         | 
| 216 215 | 
             
            requirements: []
         | 
| 217 | 
            -
             | 
| 218 | 
            -
            rubygems_version: 2.7.6
         | 
| 216 | 
            +
            rubygems_version: 3.0.1
         | 
| 219 217 | 
             
            signing_key: 
         | 
| 220 218 | 
             
            specification_version: 4
         | 
| 221 219 | 
             
            summary: Simple encryption-at-rest plugin for ActiveRecord.
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,101 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: .
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                attr_keyring (0.5.0)
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            GEM
         | 
| 7 | 
            -
              remote: https://rubygems.org/
         | 
| 8 | 
            -
              specs:
         | 
| 9 | 
            -
                activemodel (5.2.2)
         | 
| 10 | 
            -
                  activesupport (= 5.2.2)
         | 
| 11 | 
            -
                activerecord (5.2.2)
         | 
| 12 | 
            -
                  activemodel (= 5.2.2)
         | 
| 13 | 
            -
                  activesupport (= 5.2.2)
         | 
| 14 | 
            -
                  arel (>= 9.0)
         | 
| 15 | 
            -
                activesupport (5.2.2)
         | 
| 16 | 
            -
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| 17 | 
            -
                  i18n (>= 0.7, < 2)
         | 
| 18 | 
            -
                  minitest (~> 5.1)
         | 
| 19 | 
            -
                  tzinfo (~> 1.1)
         | 
| 20 | 
            -
                arel (9.0.0)
         | 
| 21 | 
            -
                ast (2.4.0)
         | 
| 22 | 
            -
                attr_vault (2.1.1)
         | 
| 23 | 
            -
                  pg (>= 0.18)
         | 
| 24 | 
            -
                  sequel (>= 4.13, < 6.0)
         | 
| 25 | 
            -
                awesome_print (1.8.0)
         | 
| 26 | 
            -
                byebug (10.0.2)
         | 
| 27 | 
            -
                coderay (1.1.2)
         | 
| 28 | 
            -
                concurrent-ruby (1.1.4)
         | 
| 29 | 
            -
                docile (1.3.1)
         | 
| 30 | 
            -
                i18n (1.2.0)
         | 
| 31 | 
            -
                  concurrent-ruby (~> 1.0)
         | 
| 32 | 
            -
                jaro_winkler (1.5.1)
         | 
| 33 | 
            -
                json (2.1.0)
         | 
| 34 | 
            -
                metaclass (0.0.4)
         | 
| 35 | 
            -
                method_source (0.9.2)
         | 
| 36 | 
            -
                minitest (5.11.3)
         | 
| 37 | 
            -
                minitest-utils (0.4.4)
         | 
| 38 | 
            -
                  minitest
         | 
| 39 | 
            -
                mocha (1.7.0)
         | 
| 40 | 
            -
                  metaclass (~> 0.0.1)
         | 
| 41 | 
            -
                parallel (1.12.1)
         | 
| 42 | 
            -
                parser (2.5.3.0)
         | 
| 43 | 
            -
                  ast (~> 2.4.0)
         | 
| 44 | 
            -
                pg (1.1.3)
         | 
| 45 | 
            -
                powerpack (0.1.2)
         | 
| 46 | 
            -
                pry (0.12.2)
         | 
| 47 | 
            -
                  coderay (~> 1.1.0)
         | 
| 48 | 
            -
                  method_source (~> 0.9.0)
         | 
| 49 | 
            -
                pry-byebug (3.6.0)
         | 
| 50 | 
            -
                  byebug (~> 10.0)
         | 
| 51 | 
            -
                  pry (~> 0.10)
         | 
| 52 | 
            -
                pry-meta (0.0.10)
         | 
| 53 | 
            -
                  awesome_print
         | 
| 54 | 
            -
                  pry
         | 
| 55 | 
            -
                  pry-byebug
         | 
| 56 | 
            -
                  pry-remote
         | 
| 57 | 
            -
                pry-remote (0.1.8)
         | 
| 58 | 
            -
                  pry (~> 0.9)
         | 
| 59 | 
            -
                  slop (~> 3.0)
         | 
| 60 | 
            -
                rainbow (3.0.0)
         | 
| 61 | 
            -
                rake (12.3.2)
         | 
| 62 | 
            -
                rubocop (0.61.1)
         | 
| 63 | 
            -
                  jaro_winkler (~> 1.5.1)
         | 
| 64 | 
            -
                  parallel (~> 1.10)
         | 
| 65 | 
            -
                  parser (>= 2.5, != 2.5.1.1)
         | 
| 66 | 
            -
                  powerpack (~> 0.1)
         | 
| 67 | 
            -
                  rainbow (>= 2.2.2, < 4.0)
         | 
| 68 | 
            -
                  ruby-progressbar (~> 1.7)
         | 
| 69 | 
            -
                  unicode-display_width (~> 1.4.0)
         | 
| 70 | 
            -
                ruby-progressbar (1.10.0)
         | 
| 71 | 
            -
                sequel (5.15.0)
         | 
| 72 | 
            -
                simplecov (0.16.1)
         | 
| 73 | 
            -
                  docile (~> 1.1)
         | 
| 74 | 
            -
                  json (>= 1.8, < 3)
         | 
| 75 | 
            -
                  simplecov-html (~> 0.10.0)
         | 
| 76 | 
            -
                simplecov-html (0.10.2)
         | 
| 77 | 
            -
                slop (3.6.0)
         | 
| 78 | 
            -
                thread_safe (0.3.6)
         | 
| 79 | 
            -
                tzinfo (1.2.5)
         | 
| 80 | 
            -
                  thread_safe (~> 0.1)
         | 
| 81 | 
            -
                unicode-display_width (1.4.0)
         | 
| 82 | 
            -
             | 
| 83 | 
            -
            PLATFORMS
         | 
| 84 | 
            -
              ruby
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            DEPENDENCIES
         | 
| 87 | 
            -
              activerecord
         | 
| 88 | 
            -
              attr_keyring!
         | 
| 89 | 
            -
              attr_vault
         | 
| 90 | 
            -
              bundler
         | 
| 91 | 
            -
              minitest-utils
         | 
| 92 | 
            -
              mocha
         | 
| 93 | 
            -
              pg
         | 
| 94 | 
            -
              pry-meta
         | 
| 95 | 
            -
              rake
         | 
| 96 | 
            -
              rubocop
         | 
| 97 | 
            -
              sequel
         | 
| 98 | 
            -
              simplecov
         | 
| 99 | 
            -
             | 
| 100 | 
            -
            BUNDLED WITH
         | 
| 101 | 
            -
               1.17.1
         |