class TaintedLove::Replacer::ReplaceDigest
Public Instance Methods
create_module(digest_class)
click to toggle source
# File lib/tainted_love/replacer/replace_digest.rb, line 19 def create_module(digest_class) module_code = %{ Module.new do def hexdigest(value) digest = super digest.instance_eval do def tainted_love_origin #{digest_class} end end digest end end } eval(module_code) end
replace!()
click to toggle source
# File lib/tainted_love/replacer/replace_digest.rb, line 10 def replace! digests = [:MD5, :SHA256, :SHA512, :SHA2, :SHA384, :SHA1] digests.each do |digest| mod = Digest.const_get(digest) mod.extend(create_module(mod)) if Object.const_defined?(mod.to_s) end end
should_replace?()
click to toggle source
# File lib/tainted_love/replacer/replace_digest.rb, line 6 def should_replace? Object.const_defined?('Digest') end