carrierwave_securefile 0.1.2 → 0.2.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.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "shoulda", ">= 0"
10
- gem "bundler", "~> 1.0.0"
10
+ gem "bundler" #, "~> 1.0.21"
11
11
  gem "jeweler", "~> 1.6.4"
12
12
  gem "rcov", ">= 0"
13
13
  end
data/Gemfile.lock ADDED
@@ -0,0 +1,28 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (3.1.3)
5
+ multi_json (~> 1.0)
6
+ carrierwave (0.5.8)
7
+ activesupport (~> 3.0)
8
+ crypt19 (1.2.1)
9
+ git (1.2.5)
10
+ jeweler (1.6.4)
11
+ bundler (~> 1.0)
12
+ git (>= 1.2.5)
13
+ rake
14
+ multi_json (1.0.3)
15
+ rake (0.9.2.2)
16
+ rcov (0.9.11)
17
+ shoulda (2.11.3)
18
+
19
+ PLATFORMS
20
+ ruby
21
+
22
+ DEPENDENCIES
23
+ bundler
24
+ carrierwave (~> 0.5.8)
25
+ crypt19 (= 1.2.1)
26
+ jeweler (~> 1.6.4)
27
+ rcov
28
+ shoulda
data/Icon/r ADDED
File without changes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.2.0
Binary file
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "carrierwave_securefile"
8
- s.version = "0.1.2"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Doug Clark"]
12
- s.date = "2011-11-28"
12
+ s.date = "2011-12-05"
13
13
  s.description = "Secure, encrypted file uploads using Crypt19 and CarrierWave"
14
14
  s.email = "doug@dougclarkonline.com"
15
15
  s.extra_rdoc_files = [
@@ -18,11 +18,15 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
+ ".rvmrc",
21
22
  "Gemfile",
23
+ "Gemfile.lock",
24
+ "Icon\r",
22
25
  "LICENSE.txt",
23
26
  "README.md",
24
27
  "Rakefile",
25
28
  "VERSION",
29
+ "carrierwave_securefile-0.1.2.gem",
26
30
  "carrierwave_securefile.gemspec",
27
31
  "lib/carrierwave/securefile.rb",
28
32
  "lib/carrierwave/securefile/configuration.rb",
@@ -45,14 +49,14 @@ Gem::Specification.new do |s|
45
49
  s.add_runtime_dependency(%q<carrierwave>, ["~> 0.5.8"])
46
50
  s.add_runtime_dependency(%q<crypt19>, ["= 1.2.1"])
47
51
  s.add_development_dependency(%q<shoulda>, [">= 0"])
48
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
52
+ s.add_development_dependency(%q<bundler>, [">= 0"])
49
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
50
54
  s.add_development_dependency(%q<rcov>, [">= 0"])
51
55
  else
52
56
  s.add_dependency(%q<carrierwave>, ["~> 0.5.8"])
53
57
  s.add_dependency(%q<crypt19>, ["= 1.2.1"])
54
58
  s.add_dependency(%q<shoulda>, [">= 0"])
55
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_dependency(%q<bundler>, [">= 0"])
56
60
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
61
  s.add_dependency(%q<rcov>, [">= 0"])
58
62
  end
@@ -60,7 +64,7 @@ Gem::Specification.new do |s|
60
64
  s.add_dependency(%q<carrierwave>, ["~> 0.5.8"])
61
65
  s.add_dependency(%q<crypt19>, ["= 1.2.1"])
62
66
  s.add_dependency(%q<shoulda>, [">= 0"])
63
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_dependency(%q<bundler>, [">= 0"])
64
68
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
65
69
  s.add_dependency(%q<rcov>, [">= 0"])
66
70
  end
@@ -10,7 +10,30 @@ module CarrierWave
10
10
  end
11
11
 
12
12
  class Configuration
13
- attr_accessor :cypher
13
+ attr_accessor :cypher, :encryption_type
14
+ end
15
+
16
+ class << self
17
+
18
+ def cryptable
19
+ configuration = CarrierWave::SecureFile.configuration
20
+ begin
21
+ if configuration.encryption_type.downcase == "blowfish"
22
+ Crypt::Blowfish
23
+ # elsif configuration.encryption_type.downcase == "idea"
24
+ # Crypt::IDEA
25
+ elsif configuration.encryption_type.downcase == "rijndael"
26
+ Crypt::Rijndael
27
+ elsif configuration.encryption_type.downcase == "gost"
28
+ Crypt::Gost
29
+ else
30
+ Crypt::Blowfish
31
+ end
32
+ rescue
33
+ Crypt::Blowfish
34
+ end
35
+ end
36
+
14
37
  end
15
38
 
16
39
  end
@@ -2,24 +2,23 @@ module CarrierWave
2
2
  module SecureFile
3
3
  module Downloader
4
4
 
5
-
6
5
  class << self
7
6
 
8
- def call(uploader_model,activerecord_record)
7
+ def call(uploader_model, activerecord_record, file_field)
8
+ Rails.logger.debug "Downloading using #{CarrierWave::SecureFile.cryptable}..."
9
9
  downloader = uploader_model.new
10
10
  uploaded_file = activerecord_record
11
- downloader.download!(uploaded_file.user_file.to_s)
11
+ eval "downloader.download!(uploaded_file.#{file_field}.to_s)"
12
12
  file = downloader.to_s
13
13
  ext_file = file + ".x1"
14
14
  File.rename(file,ext_file)
15
- p "Downloader Configuration: "
16
15
  configuration = CarrierWave::SecureFile.configuration
17
- bf = Crypt::Blowfish.new(configuration.cypher)
16
+ bf = CarrierWave::SecureFile.cryptable.new(configuration.cypher)
18
17
  bf.decrypt_file(ext_file, file)
19
18
  File.unlink(ext_file)
20
19
  return { :file => file, :content_type => uploaded_file.content_type }
21
20
  end
22
-
21
+
23
22
  end
24
23
 
25
24
 
@@ -5,10 +5,11 @@ module CarrierWave
5
5
 
6
6
  def self.secure_file(model=nil, file)
7
7
  if model
8
+ Rails.logger.debug "Uploading using #{CarrierWave::SecureFile.cryptable}..."
8
9
  ext_file = file + ".x1"
9
10
  File.rename(file, ext_file)
10
11
  configuration = CarrierWave::SecureFile.configuration
11
- bf = Crypt::Blowfish.new(configuration.cypher)
12
+ bf = CarrierWave::SecureFile.cryptable.new(configuration.cypher)
12
13
  bf.encrypt_file(ext_file, file)
13
14
  File.unlink(ext_file)
14
15
  file
@@ -1,16 +1,40 @@
1
1
  require 'digest/md5'
2
+ require 'logger'
2
3
  # require 'carrierwave/securefile.rb'
3
4
  require 'carrierwave/securefile/uploader.rb'
4
5
  require 'carrierwave/securefile/downloader.rb'
5
6
  require 'carrierwave/securefile/configuration.rb'
6
7
 
7
- unless defined? Crypt
8
- begin
8
+ if defined? Crypt
9
+
10
+ begin # require blowfish
9
11
  require 'crypt/blowfish'
10
12
  rescue LoadError
11
13
  puts "WARNING: Failed to require crypt/blowfish, encryption may fail!"
12
14
  puts " You may need to add the crypt19 gem."
13
15
  end
16
+
17
+ begin # require gost
18
+ require 'crypt/gost'
19
+ rescue LoadError
20
+ puts "WARNING: Failed to require crypt/gost, encryption may fail!"
21
+ puts " You may need to add the crypt19 gem."
22
+ end
23
+
24
+ begin # require rijndael
25
+ require 'crypt/rijndael'
26
+ rescue LoadError
27
+ puts "WARNING: Failed to require crypt/rijndael, encryption may fail!"
28
+ puts " You may need to add the crypt19 gem."
29
+ end
30
+
31
+ # begin # require idea
32
+ # require 'crypt/idea'
33
+ # rescue LoadError
34
+ # puts "WARNING: Failed to require crypt/idea, encryption may fail!"
35
+ # puts " You may need to add the crypt19 gem."
36
+ # end
37
+ #
14
38
  end
15
39
 
16
40
  module CarrierWave
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave_securefile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-28 00:00:00.000000000 Z
12
+ date: 2011-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: carrierwave
16
- requirement: &70238583705540 !ruby/object:Gem::Requirement
16
+ requirement: &70119079608620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.5.8
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70238583705540
24
+ version_requirements: *70119079608620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: crypt19
27
- requirement: &70238583704360 !ruby/object:Gem::Requirement
27
+ requirement: &70119079608060 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.2.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70238583704360
35
+ version_requirements: *70119079608060
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70238583703680 !ruby/object:Gem::Requirement
38
+ requirement: &70119079607540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70238583703680
46
+ version_requirements: *70119079607540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70238583702440 !ruby/object:Gem::Requirement
49
+ requirement: &70119079606880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ~>
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70238583702440
57
+ version_requirements: *70119079606880
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70238583728400 !ruby/object:Gem::Requirement
60
+ requirement: &70119079622700 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70238583728400
68
+ version_requirements: *70119079622700
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70238583727520 !ruby/object:Gem::Requirement
71
+ requirement: &70119079622120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70238583727520
79
+ version_requirements: *70119079622120
80
80
  description: Secure, encrypted file uploads using Crypt19 and CarrierWave
81
81
  email: doug@dougclarkonline.com
82
82
  executables: []
@@ -86,11 +86,15 @@ extra_rdoc_files:
86
86
  - README.md
87
87
  files:
88
88
  - .document
89
+ - .rvmrc
89
90
  - Gemfile
91
+ - Gemfile.lock
92
+ - ! "Icon\r"
90
93
  - LICENSE.txt
91
94
  - README.md
92
95
  - Rakefile
93
96
  - VERSION
97
+ - carrierwave_securefile-0.1.2.gem
94
98
  - carrierwave_securefile.gemspec
95
99
  - lib/carrierwave/securefile.rb
96
100
  - lib/carrierwave/securefile/configuration.rb
@@ -114,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
118
  version: '0'
115
119
  segments:
116
120
  - 0
117
- hash: -1595986856996859556
121
+ hash: -2188438683901304360
118
122
  required_rubygems_version: !ruby/object:Gem::Requirement
119
123
  none: false
120
124
  requirements: