summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2011-08-06 00:00:07 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2011-08-06 00:00:07 +0200
commit95fcd722943eff110febe2625f5a2118c34c6112 (patch)
treeac187d36a21ea89090595dd1c8bd0c5ba3fa9004 /lib
parentbfd398596afed66754011b6720e5891c4897c858 (diff)
downloadayk-95fcd722943eff110febe2625f5a2118c34c6112.zip
ayk-95fcd722943eff110febe2625f5a2118c34c6112.tar.gz
add JCryption::digest and specs
Diffstat (limited to 'lib')
-rw-r--r--lib/ayk/jcryption.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/ayk/jcryption.rb b/lib/ayk/jcryption.rb
index 3b4871f..d498184 100644
--- a/lib/ayk/jcryption.rb
+++ b/lib/ayk/jcryption.rb
@@ -25,6 +25,8 @@
#----------------------------------------------------------------------------
#
require 'ayk/maths'
+require 'digest/md5'
+require 'digest/sha2'
#
module JCryption
#
@@ -47,5 +49,22 @@ module JCryption
OpenSSL::PKey::RSA.generate( bits )
end
module_function :gen_keypair
+ #
+ def digest passwd, salt=nil
+ n = passwd.length
+ i = ((n/2)+1)-n%8
+ i=0 if i<0
+ if salt.nil?
+ m = Digest::MD5.new
+ m << Time.now.to_s
+ n = Time.now.to_i%20
+ salt = m.to_s[n..n+12]
+ end
+ d = Digest::SHA2.new << passwd[0..i]+salt+passwd[i+1..-1]
+ [d,salt]
+ end
+ module_function :digest
+ #
end
-
+#
+# EOF