summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
diff options
context:
space:
mode:
Diffstat (limited to 'web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb')
-rw-r--r--web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb b/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
new file mode 100644
index 00000000..7779f54b
--- /dev/null
+++ b/web/server/h2o/libh2o/deps/mruby-digest/mrblib/digest.rb
@@ -0,0 +1,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