obfuscate 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/obfuscate/crypt.rb +22 -10
- data/lib/obfuscate/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebb1fc277b8023705fe8996c358335d0c48b7e3f3735e6c35898814e4fd12c7b
|
4
|
+
data.tar.gz: e278091683eab149d241fe75fe61f7df5f3b296920d73f7c02962e112a9ba908
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 969ff36fb5ab28bf7c25dcc4d6cd600731f3791cc57f00f85afd4a7ef35c0abacc75f62bd807b75261a28df1369dcf19d61026773bf8058b796318d075e12dcc
|
7
|
+
data.tar.gz: 6dbe25dc7c059a2a9ed024427a69c797059724fddf5966b0abb3f0300cb2d36f1fb0e47ab2372af7f7efff3750761ab64b553eea2f7cae6575c9a2345aa40007
|
data/Gemfile.lock
CHANGED
data/lib/obfuscate/crypt.rb
CHANGED
@@ -18,6 +18,9 @@ require 'crypt/blowfish'
|
|
18
18
|
require 'base64'
|
19
19
|
|
20
20
|
class Obfuscate::Crypt
|
21
|
+
Base64Error = Class.new(StandardError)
|
22
|
+
UnsupportedModeError = Class.new(StandardError)
|
23
|
+
|
21
24
|
attr_reader :config
|
22
25
|
attr_reader :exec_config
|
23
26
|
|
@@ -58,23 +61,32 @@ class Obfuscate::Crypt
|
|
58
61
|
#
|
59
62
|
# @param [Symbol] override_mode to explicit set clarify mode to :string or :block
|
60
63
|
# @return [String]
|
61
|
-
def clarify(
|
64
|
+
def clarify(text, override_mode = nil)
|
62
65
|
|
63
|
-
@exec_config = @config.apply(
|
66
|
+
@exec_config = @config.apply(:mode => (override_mode || @config.mode))
|
64
67
|
obfuscated = text.to_s
|
65
68
|
|
66
|
-
|
67
69
|
if @exec_config.encode
|
68
70
|
obfuscated << "=" if @exec_config.remove_trailing_equal?
|
69
|
-
obfuscated = Base64.urlsafe_decode64(
|
71
|
+
obfuscated = Base64.urlsafe_decode64(obfuscated)
|
70
72
|
end
|
71
73
|
|
72
|
-
|
73
|
-
@
|
74
|
-
|
75
|
-
@
|
76
|
-
|
77
|
-
|
74
|
+
begin
|
75
|
+
if @exec_config.mode == :string
|
76
|
+
@crypt.decrypt_string(obfuscated)
|
77
|
+
elsif @exec_config.mode == :block
|
78
|
+
@crypt.decrypt_block(obfuscated).strip
|
79
|
+
else
|
80
|
+
raise UnsupportedModeError.new("Unknown mode: #{@exec_config.mode}")
|
81
|
+
end
|
82
|
+
rescue ArgumentError => ex
|
83
|
+
raise Base64Error.new("Cannot decode #{text}") if ex.message == 'invalid base64'
|
84
|
+
|
85
|
+
raise ex
|
86
|
+
rescue => ex
|
87
|
+
raise Base64Error.new("Cannot decode #{text}") if ex.message == "undefined method `%'"
|
88
|
+
|
89
|
+
raise ex
|
78
90
|
end
|
79
91
|
end
|
80
92
|
end
|
data/lib/obfuscate/version.rb
CHANGED