about summary refs log tree commit
path: root/lib/metropolis/multi_hash/digest.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/metropolis/multi_hash/digest.rb')
-rw-r--r--lib/metropolis/multi_hash/digest.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/metropolis/multi_hash/digest.rb b/lib/metropolis/multi_hash/digest.rb
new file mode 100644
index 0000000..974d7ac
--- /dev/null
+++ b/lib/metropolis/multi_hash/digest.rb
@@ -0,0 +1,23 @@
+# -*- encoding: binary -*-
+require 'digest'
+module Metropolis::MultiHash::Digest
+  def digest_sha1(key)
+    ::Digest::SHA1.digest(key)[0,4].unpack("N")[0]
+  end
+
+  def digest_md5(key)
+    ::Digest::MD5.digest(key)[0,4].unpack("N")[0]
+  end
+
+  def digest_sha256(key)
+    ::Digest::SHA256.digest(key)[0,4].unpack("N")[0]
+  end
+
+  def digest_sha384(key)
+    ::Digest::SHA384.digest(key)[0,4].unpack("N")[0]
+  end
+
+  def digest_sha512(key)
+    ::Digest::SHA512.digest(key)[0,4].unpack("N")[0]
+  end
+end