lib/net/ssh/transport/key_expander.rb in net-ssh-6.2.0.rc2 vs lib/net/ssh/transport/key_expander.rb in net-ssh-6.3.0.beta1

- old
+ new

@@ -1,29 +1,28 @@ -module Net - module SSH +module Net + module SSH module Transport module KeyExpander - # Generate a key value in accordance with the SSH2 specification. # (RFC4253 7.2. "Output from Key Exchange") def self.expand_key(bytes, start, options={}) if bytes == 0 return "" end - + k = start[0, bytes] return k if k.length >= bytes - + digester = options[:digester] or raise 'No digester supplied' shared = options[:shared] or raise 'No shared secret supplied' hash = options[:hash] or raise 'No hash supplied' - + while k.length < bytes step = digester.digest(shared + hash + k) bytes_needed = bytes - k.length k << step[0, bytes_needed] end - + return k end end end end