spikex-strongbox 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/strongbox.rb +1 -1
- data/lib/strongbox/lock.rb +20 -1
- metadata +2 -2
data/lib/strongbox.rb
CHANGED
data/lib/strongbox/lock.rb
CHANGED
@@ -8,6 +8,8 @@ module Strongbox
|
|
8
8
|
@name = name
|
9
9
|
@instance = instance
|
10
10
|
|
11
|
+
@size = nil
|
12
|
+
|
11
13
|
options = Strongbox.options.merge(options)
|
12
14
|
|
13
15
|
@base64 = options[:base64]
|
@@ -25,6 +27,7 @@ module Strongbox
|
|
25
27
|
raise StrongboxError.new("#{@instance.class} model does not have public key_file")
|
26
28
|
end
|
27
29
|
if !plaintext.blank?
|
30
|
+
@size = plaintext.size # For validations
|
28
31
|
# Using a blank password in OpenSSL::PKey::RSA.new prevents reading
|
29
32
|
# the private key if the file is a key pair
|
30
33
|
public_key = OpenSSL::PKey::RSA.new(File.read(@public_key),"")
|
@@ -58,13 +61,16 @@ module Strongbox
|
|
58
61
|
def decrypt password = ""
|
59
62
|
# Given a private key and a nil password OpenSSL::PKey::RSA.new() will
|
60
63
|
# *prompt* for a password, we default to an empty string to avoid that.
|
64
|
+
ciphertext = @instance.read_attribute(@name)
|
65
|
+
return nil if ciphertext.nil?
|
66
|
+
return "" if ciphertext.empty?
|
67
|
+
|
61
68
|
return "*encrypted*" if password.blank?
|
62
69
|
|
63
70
|
unless @private_key
|
64
71
|
raise StrongboxError.new("#{@instance.class} model does not have private key_file")
|
65
72
|
end
|
66
73
|
|
67
|
-
ciphertext = @instance.read_attribute(@name)
|
68
74
|
if ciphertext
|
69
75
|
ciphertext = Base64.decode64(ciphertext) if @base64
|
70
76
|
private_key = OpenSSL::PKey::RSA.new(File.read(@private_key),password)
|
@@ -92,5 +98,18 @@ module Strongbox
|
|
92
98
|
def to_s
|
93
99
|
decrypt
|
94
100
|
end
|
101
|
+
|
102
|
+
# Needed for validations
|
103
|
+
def blank?
|
104
|
+
@instance.read_attribute(@name).blank?
|
105
|
+
end
|
106
|
+
|
107
|
+
def nil?
|
108
|
+
@instance.read_attribute(@name).nil?
|
109
|
+
end
|
110
|
+
|
111
|
+
def size
|
112
|
+
@size
|
113
|
+
end
|
95
114
|
end
|
96
115
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spikex-strongbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Spike Ilacqua
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-19 23:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|