symmetric-encryption 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/csv.zip ADDED
Binary file
data/csv_encrypted ADDED
Binary file
data/csv_encrypted_zip ADDED
Binary file
@@ -223,6 +223,50 @@ module SymmetricEncryption
223
223
  read_header
224
224
  end
225
225
 
226
+ # Seeks to a given offset (Integer) in the stream according to the value of whence:
227
+ # IO::SEEK_CUR | Seeks to _amount_ plus current position
228
+ # --------------+----------------------------------------------------
229
+ # IO::SEEK_END | Seeks to _amount_ plus end of stream (you probably
230
+ # | want a negative value for _amount_)
231
+ # --------------+----------------------------------------------------
232
+ # IO::SEEK_SET | Seeks to the absolute location given by _amount_
233
+ #
234
+ # WARNING: IO::SEEK_SET will jump to the beginning of the file and
235
+ # then re-read upto the point specified
236
+ # WARNING: IO::SEEK_END will read the entire file and then again
237
+ # upto the point specified
238
+ def seek(amount, whence=IO::SEEK_SET)
239
+ offset = 0
240
+ case whence
241
+ when IO::SEEK_SET
242
+ offset = amount
243
+ rewind
244
+ when IO::SEEK_CUR
245
+ if amount >= 0
246
+ offset = amount
247
+ else
248
+ offset = @pos + amount
249
+ rewind
250
+ end
251
+ when IO::SEEK_END
252
+ rewind
253
+ # Read and decrypt entire file a block at a time to get its total
254
+ # unencrypted size
255
+ size = 0
256
+ while !eof
257
+ read_block
258
+ size += @read_buffer.size
259
+ @read_buffer = ''
260
+ end
261
+ rewind
262
+ offset = size + amount
263
+ else
264
+ raise "unknown whence:#{whence} supplied to seek()"
265
+ end
266
+ read(offset) if offset > 0
267
+ 0
268
+ end
269
+
226
270
  private
227
271
 
228
272
  # Read the header from the file if present
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module SymmetricEncryption #:nodoc
3
- VERSION = "0.6.1"
3
+ VERSION = "0.7.0"
4
4
  end
@@ -29,7 +29,7 @@ module SymmetricEncryption
29
29
  # The header contains:
30
30
  # Version of the encryption key used to encrypt the file
31
31
  # Indicator if the data was compressed
32
- # Default: false
32
+ # Default: true
33
33
  #
34
34
  # :version
35
35
  # Version of the encryption key to use when encrypting
@@ -82,7 +82,7 @@ module SymmetricEncryption
82
82
  # Encrypt data before writing to the supplied stream
83
83
  def initialize(ios,options={})
84
84
  @ios = ios
85
- header = options.fetch(:header, false)
85
+ header = options.fetch(:header, true)
86
86
  # Compress is only used at this point for setting the flag in the header
87
87
  @compress = options.fetch(:compress, false)
88
88
 
data/test/reader_test.rb CHANGED
@@ -69,13 +69,12 @@ class ReaderTest < Test::Unit::TestCase
69
69
 
70
70
  context "reading from file" do
71
71
  # With and without header
72
- [false, true].each do |header|
73
- context "with#{'out' unless header} header" do
72
+ [{:header => false}, {:header => true}, {:header => true, :compress => true}].each do |options|
73
+ context "with#{'out' unless options[:header]} header" do
74
74
  setup do
75
75
  @filename = '._test'
76
- @options = { :header => header }
77
76
  # Create encrypted file
78
- SymmetricEncryption::Writer.open(@filename, @options) do |file|
77
+ SymmetricEncryption::Writer.open(@filename, options) do |file|
79
78
  @data.inject(0) {|sum,str| sum + file.write(str)}
80
79
  end
81
80
  end
data/test/writer_test.rb CHANGED
@@ -31,7 +31,7 @@ class EncryptionWriterTest < Test::Unit::TestCase
31
31
 
32
32
  should "encrypt to string stream" do
33
33
  stream = StringIO.new
34
- file = SymmetricEncryption::Writer.new(stream)
34
+ file = SymmetricEncryption::Writer.new(stream, :header => false)
35
35
  written_len = @data.inject(0) {|sum,str| sum + file.write(str)}
36
36
  file.close
37
37
 
@@ -50,7 +50,7 @@ class EncryptionWriterTest < Test::Unit::TestCase
50
50
 
51
51
  should "encrypt to file using .open" do
52
52
  written_len = nil
53
- SymmetricEncryption::Writer.open(@filename) do |file|
53
+ SymmetricEncryption::Writer.open(@filename, :header => false) do |file|
54
54
  written_len = @data.inject(0) {|sum,str| sum + file.write(str)}
55
55
  end
56
56
  assert_equal @data_len, written_len
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 6
8
- - 1
9
- version: 0.6.1
7
+ - 7
8
+ - 0
9
+ version: 0.7.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Reid Morrison
@@ -28,6 +28,9 @@ extensions: []
28
28
  extra_rdoc_files: []
29
29
 
30
30
  files:
31
+ - csv.zip
32
+ - csv_encrypted
33
+ - csv_encrypted_zip
31
34
  - examples/symmetric-encryption.yml
32
35
  - lib/csv_encrypted
33
36
  - lib/symmetric-encryption.rb
@@ -50,8 +53,6 @@ files:
50
53
  - nbproject/project.xml
51
54
  - Rakefile
52
55
  - README.md
53
- - symmetric-encryption-0.6.0.gem
54
- - symmetric-encryption-0.6.1.gem
55
56
  - test/attr_encrypted_test.rb
56
57
  - test/cipher_test.rb
57
58
  - test/config/database.yml
Binary file