/usr/lib/ruby/vendor_ruby/moneta/transformer/helper.rb is in ruby-moneta 0.7.20-2.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | module Moneta
class Transformer
# @api private
module Helper
extend self
def escape(value)
value.gsub(/[^a-zA-Z0-9_-]+/){ '%' + $&.unpack('H2' * $&.bytesize).join('%').upcase }
end
def unescape(value)
value.gsub(/((?:%[0-9a-fA-F]{2})+)/){ [$1.delete('%')].pack('H*') }
end
def hmacverify(value, secret)
hash, value = value[0..31], value[32..-1]
value if hash == OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'), secret, value)
end
def hmacsign(value, secret)
OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'), secret, value) << value
end
def truncate(value, maxlen)
if value.size >= maxlen
digest = Digest::MD5.hexdigest(value)
value = value[0, maxlen-digest.size] << digest
end
value
end
def spread(value)
::File.join(value[0..1], value[2..-1])
end
end
end
end
|