Sha256: 464f423a1425c413ca51aab14f07fc724606f434c0ed88729bf5350e6a59f26d

Contents?: true

Size: 840 Bytes

Versions: 20

Compression:

Stored size: 840 Bytes

Contents

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
end

Version data entries

20 entries across 20 versions & 5 rubygems

Version Path
net-ssh-7.3.0 lib/net/ssh/transport/key_expander.rb
net-ssh-7.3.0.rc1 lib/net/ssh/transport/key_expander.rb
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/net-ssh-7.2.1/lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.3 lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.2.rc1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.1.rc1 lib/net/ssh/transport/key_expander.rb
honeybadger-5.4.0 vendor/bundle/ruby/3.2.0/gems/net-ssh-7.2.0/lib/net/ssh/transport/key_expander.rb
honeybadger-5.3.0 vendor/bundle/ruby/3.2.0/gems/net-ssh-7.2.0/lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.0 lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.0.rc1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.2.0.beta1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.1.0 lib/net/ssh/transport/key_expander.rb
net-ssh-7.1.0.beta2 lib/net/ssh/transport/key_expander.rb
net-ssh-7.1.0.beta1 lib/net/ssh/transport/key_expander.rb
net-ssh-clone-7.0.1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.0.1 lib/net/ssh/transport/key_expander.rb
net-ssh-7.0.0 lib/net/ssh/transport/key_expander.rb
net-ssh-7.0.0.beta1 lib/net/ssh/transport/key_expander.rb
eximius-net-ssh-6.3.1 lib/net/ssh/transport/key_expander.rb