summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
blob: 7779f54b921b4c195517bdecc795cf90c38890b2 (plain)
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
38
39
40
41
42
43
44
45
46
if Object.const_defined? :Digest
module Digest
  class Base
    def self.digest(data)
      self.new.update(data).digest
    end
    def self.file(path)
      self.new.update(File.open(path).read)
    end
    def self.hexdigest(data)
      self.new.update(data).hexdigest
    end
    def ==(other)
      if other.kind_of? String
        self.hexdigest == other
      else 
        self.digest == other.digest
      end
    end
    def file(path)
      self.update(File.open(path).read)
    end
    def hexdigest!
      x = self.hexdigest
      self.reset
      x
    end

    alias length digest_length
    alias size digest_length
    alias to_s hexdigest
    alias << update
  end

  class HMAC
    def self.digest(data, key, digest)
      self.new(key, digest).update(data).digest
    end
    def self.hexdigest(data, key, digest)
      self.new(key, digest).update(data).hexdigest
    end

    alias << update
  end
end
end