lockbox 1.1.0 → 1.1.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
2
  SHA256:
3
- metadata.gz: 860bb7bcddfde22f980e11185c2afae0453e6547064d4538024a16f7652f953d
4
- data.tar.gz: 5c97a4bcde5621234bf3f832d0c4a2eb7ca2a986541cb203b6370170141fe29b
3
+ metadata.gz: 25557e658cab349f0b1e5875b87f3c0a804a5c3aa587171331c5bdbece0ebf2f
4
+ data.tar.gz: 6d9d0e425c3c2107e9cdce85880c9b11db16062c68e1f87706c8f70afac6eef0
5
5
  SHA512:
6
- metadata.gz: f1435f9cd4dac0ea8bbee39d787c2a28c73b72a3de260759c27a5bc6c53f2c2fb344f144fa391742f3415baf7a0ea183e683353773c0eb305e145f1084d11918
7
- data.tar.gz: 7623133737e4e465a3c63a0c5bbec337382fcce37469e9685a77578af02218d82b5988a057d3b9dc1d7c1accc9de84014ec9bf32d5ac1f0bc8d15455a80c392c
6
+ metadata.gz: 1df5017733e14858ed3bacb5a480bbe43858974b05a74abe0165d680bb4a6a0e700e49990e5cd8004f8b021c33d6ed0c4edfe3bd5d0e7a02dc114d16894cf02d
7
+ data.tar.gz: 3d51c407d23036699bf2b3a7813eca85c1004e01ba8edda1bc75b5e0e6a1086e3fe1cbd0593f9cab4b0ce7fd16dd1cc320dd6fac8aead84fdfd436530db0ae5a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 1.1.2 (2023-02-01)
2
+
3
+ - Fixed error when migrating to `array`, `hash`, and `json` types
4
+
5
+ ## 1.1.1 (2022-12-08)
6
+
7
+ - Fixed error when `StringIO` not loaded
8
+
1
9
  ## 1.1.0 (2022-10-09)
2
10
 
3
11
  - Added support for `insert`, `insert_all`, `insert_all!`, `upsert`, and `upsert_all`
data/lib/lockbox/model.rb CHANGED
@@ -543,8 +543,8 @@ module Lockbox
543
543
  # do nothing
544
544
  # encrypt will convert to binary
545
545
  else
546
- # use original name for serialized attributes
547
- type = (try(:attribute_types) || {})[original_name.to_s]
546
+ # use original name for serialized attributes if no type specified
547
+ type = (try(:attribute_types) || {})[(options[:type] ? name : original_name).to_s]
548
548
  message = type.serialize(message) if type
549
549
  end
550
550
  end
@@ -576,9 +576,9 @@ module Lockbox
576
576
  when :time
577
577
  message = ActiveRecord::Type::Time.new.deserialize(message)
578
578
  when :integer
579
- message = ActiveRecord::Type::Integer.new(limit: 8).deserialize(message.unpack("q>").first)
579
+ message = ActiveRecord::Type::Integer.new(limit: 8).deserialize(message.unpack1("q>"))
580
580
  when :float
581
- message = ActiveRecord::Type::Float.new.deserialize(message.unpack("G").first)
581
+ message = ActiveRecord::Type::Float.new.deserialize(message.unpack1("G"))
582
582
  when :string
583
583
  message.force_encoding(Encoding::UTF_8)
584
584
  when :binary
@@ -590,8 +590,8 @@ module Lockbox
590
590
  message = IPAddr.new_ntoh(addr.first(len))
591
591
  message.prefix = prefix
592
592
  else
593
- # use original name for serialized attributes
594
- type = (try(:attribute_types) || {})[original_name.to_s]
593
+ # use original name for serialized attributes if no type specified
594
+ type = (try(:attribute_types) || {})[(options[:type] ? name : original_name).to_s]
595
595
  message = type.deserialize(message) if type
596
596
  message.force_encoding(Encoding::UTF_8) if !type || type.is_a?(ActiveModel::Type::String)
597
597
  end
@@ -1,3 +1,3 @@
1
1
  module Lockbox
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.2"
3
3
  end
data/lib/lockbox.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  require "base64"
3
3
  require "openssl"
4
4
  require "securerandom"
5
+ require "stringio"
5
6
 
6
7
  # modules
7
8
  require "lockbox/aes_gcm"
@@ -71,7 +72,7 @@ module Lockbox
71
72
  end
72
73
 
73
74
  def self.to_hex(str)
74
- str.unpack("H*").first
75
+ str.unpack1("H*")
75
76
  end
76
77
 
77
78
  def self.new(**options)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lockbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-10 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: andrew@ankane.org
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 3.3.7
61
+ rubygems_version: 3.4.1
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Modern encryption for Ruby and Rails