class GostHmac::KdfTree256
Public Class Methods
generateKey(key_in, label, seed, num_R, out_len)
click to toggle source
# File lib/gost_hmac/kdf_tree_256.rb, line 3 def self.generateKey(key_in, label, seed, num_R, out_len) n = out_len / 32 if out_len % 32 > 0 then n += 1 end buf = '' data = 0.chr * num_R + label + 0.chr + seed + (out_len / 32).chr + (out_len % 32).chr (0...n).each do |i| data[num_R-1] = (i+1).chr hmac = Hmac.new(key_in, 32).update(data).final buf += hmac end return buf[0...out_len] end