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 +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +28 -0
- data/Icon/r +0 -0
- data/VERSION +1 -1
- data/carrierwave_securefile-0.1.2.gem +0 -0
- data/carrierwave_securefile.gemspec +9 -5
- data/lib/carrierwave/securefile/configuration.rb +24 -1
- data/lib/carrierwave/securefile/downloader.rb +5 -6
- data/lib/carrierwave/securefile/uploader.rb +2 -1
- data/lib/carrierwave_securefile.rb +26 -2
- metadata +21 -17
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.3
|
data/Gemfile
CHANGED
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
|
+
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.
|
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-
|
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>, ["
|
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>, ["
|
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>, ["
|
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.
|
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 =
|
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 =
|
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
|
-
|
8
|
-
|
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *70119079608620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: crypt19
|
27
|
-
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: *
|
35
|
+
version_requirements: *70119079608060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
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: *
|
46
|
+
version_requirements: *70119079607540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
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:
|
54
|
+
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70119079606880
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
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: *
|
68
|
+
version_requirements: *70119079622700
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
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: *
|
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: -
|
121
|
+
hash: -2188438683901304360
|
118
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
123
|
none: false
|
120
124
|
requirements:
|