symmetric-encryption 3.7.1 → 3.7.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
  SHA1:
3
- metadata.gz: bf80c877df8956523fd982885eb86a46449df496
4
- data.tar.gz: dc1a387514f317de8d7421ea3a6a1ef524a29f9a
3
+ metadata.gz: f92b1092b1192c42eb9b82d2ae059c548dbbe12d
4
+ data.tar.gz: dd540914e52a9a772bb860c9042d98c18e7eecaf
5
5
  SHA512:
6
- metadata.gz: 51c6e478b300af126f03cbb4564ac0f092d4eb87328359010e0e7aa642a56a94f57196759fa1d6f2ff41e1b21aebb7edf37564cdabc4e05e0b4e7e1f6dc1c5ca
7
- data.tar.gz: b91671ee13ed90b04d26802d5b66b2b2464f2e9c2dcdb4320b0d93dede043475cccea35c7de4d98fbd716da48f6000b6be2ce44d6105bff5a95e6af26be57713
6
+ metadata.gz: 54ff672e35c0d2bbe1545225e9da85294e032c5a0f8d211a74386659e7a9bafd354f1d4e8f64c922e6779ec0a51283a939303b7cc15c3ef27db52edd4c63e844
7
+ data.tar.gz: 5d1794d4203b3a1d951479c9be6d0802bb268ee8f4ce8cc795c215b35bae57b5a7ec8a5beddefd6b1ac17a007af8894f2b9f276402bb9c48fa115236043ef463
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- symmetric-encryption [![Build Status](https://secure.travis-ci.org/reidmorrison/symmetric-encryption.png?branch=master)](http://travis-ci.org/reidmorrison/symmetric-encryption)
1
+ symmetric-encryption [![Build Status](https://secure.travis-ci.org/reidmorrison/symmetric-encryption.png?branch=master)](http://travis-ci.org/reidmorrison/symmetric-encryption) ![](http://ruby-gem-downloads-badge.herokuapp.com/symmetric-encryption?type=total)
2
2
  ====================
3
3
 
4
4
  * http://github.com/reidmorrison/symmetric-encryption
@@ -19,14 +19,6 @@ expose all the encryption algorithms supported by OpenSSL.
19
19
 
20
20
  For complete documentation see: http://reidmorrison.github.io/symmetric-encryption/
21
21
 
22
- ## Changes with V4
23
-
24
- * V4 takes advantage of Ruby V2 named parameters and as such only works with
25
- Ruby V2, and greater. This also means that for JRuby users it must be run in
26
- V2 mode if not already running JRuby 9.0.0.0 or greater.
27
- Users requiring compatibility with Ruby 1.8.7 and JRuby 1.7 ( 1.9 mode )
28
- should continue to run Symmetric Encryption V3
29
-
30
22
  ## New features in V1.1 and V2
31
23
 
32
24
  * Ability to randomly generate a new initialization vector (iv) with every
@@ -87,7 +87,7 @@ module SymmetricEncryption
87
87
  file = Zlib::GzipReader.new(file) if !file.eof? && (file.compressed? || compress)
88
88
  block ? block.call(file) : file
89
89
  ensure
90
- file.close if block && file
90
+ file.close if block && file && (file.respond_to?(:closed?) && !file.closed?)
91
91
  end
92
92
  end
93
93
 
@@ -114,6 +114,7 @@ module SymmetricEncryption
114
114
  @buffer_size = options.fetch(:buffer_size, 4096).to_i
115
115
  @version = options[:version]
116
116
  @header_present = false
117
+ @closed = false
117
118
 
118
119
  raise(ArgumentError, 'Buffer size cannot be smaller than 128') unless @buffer_size >= 128
119
120
 
@@ -153,7 +154,9 @@ module SymmetricEncryption
153
154
  # rather than creating an instance of Symmetric::EncryptedStream directly to
154
155
  # ensure that the encrypted stream is closed before the stream itself is closed
155
156
  def close(close_child_stream = true)
157
+ return if closed?
156
158
  @ios.close if close_child_stream
159
+ @closed = true
157
160
  end
158
161
 
159
162
  # Flush the read stream
@@ -355,5 +358,9 @@ module SymmetricEncryption
355
358
  @read_buffer << @stream_cipher.final if @ios.eof?
356
359
  end
357
360
 
361
+ def closed?
362
+ @closed || @ios.respond_to?(:closed?) && @ios.closed?
363
+ end
364
+
358
365
  end
359
366
  end
@@ -1,3 +1,3 @@
1
1
  module SymmetricEncryption #:nodoc
2
- VERSION = "3.7.1"
2
+ VERSION = "3.7.2"
3
3
  end
@@ -109,7 +109,7 @@ module SymmetricEncryption
109
109
  file = Zlib::GzipWriter.new(file) if compress
110
110
  block ? block.call(file) : file
111
111
  ensure
112
- file.close if block && file
112
+ file.close if block && file && (file.respond_to?(:closed?) && !file.closed?)
113
113
  end
114
114
  end
115
115
 
@@ -152,6 +152,7 @@ module SymmetricEncryption
152
152
  cipher_name))
153
153
  end
154
154
  @size = 0
155
+ @closed = false
155
156
  end
156
157
 
157
158
  # Close the IO Stream
@@ -167,11 +168,13 @@ module SymmetricEncryption
167
168
  # rather than creating an instance of Symmetric::EncryptedStream directly to
168
169
  # ensure that the encrypted stream is closed before the stream itself is closed
169
170
  def close(close_child_stream = true)
171
+ return if closed?
170
172
  if size > 0
171
173
  final = @stream_cipher.final
172
174
  @ios.write(final) if final.length > 0
173
175
  end
174
176
  @ios.close if close_child_stream
177
+ @closed = true
175
178
  end
176
179
 
177
180
  # Write to the IO Stream as encrypted data
@@ -204,6 +207,10 @@ module SymmetricEncryption
204
207
  @ios.flush
205
208
  end
206
209
 
210
+ def closed?
211
+ @closed || @ios.respond_to?(:closed?) && @ios.closed?
212
+ end
213
+
207
214
  # Returns [Integer] the number of unencrypted and uncompressed bytes
208
215
  # written to the file so far
209
216
  attr_reader :size
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symmetric-encryption
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.1
4
+ version: 3.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-15 00:00:00.000000000 Z
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coercible
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  requirements: []
99
99
  rubyforge_project:
100
- rubygems_version: 2.4.6
100
+ rubygems_version: 2.4.8
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: Symmetric Encryption for Ruby, and Ruby on Rails