carrierwave_securefile 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|