Sha256: 5d0409fd2c35a678cf13ca08371920f6b52515766a963514b1d445d34e58da3a

Contents?: true

Size: 869 Bytes

Versions: 48

Compression:

Stored size: 869 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

48 entries across 41 versions & 3 rubygems

Version Path
vagrant-unbundled-2.2.19.0 vendor/bundle/ruby/3.0.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.18.0 vendor/bundle/ruby/3.0.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/3.0.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-6.2.0.rc1/lib/net/ssh/transport/key_expander.rb
net-ssh-6.2.0.rc2 lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.14.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-6.2.0.rc1/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.10.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/key_expander.rb
net-ssh-6.2.0.rc1 lib/net/ssh/transport/key_expander.rb
net-ssh-6.2.0.beta1 lib/net/ssh/transport/key_expander.rb
net-ssh-6.1.0 lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.9.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-5.2.0/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.8.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-5.2.0/lib/net/ssh/transport/key_expander.rb
net-ssh-6.1.0.rc1 lib/net/ssh/transport/key_expander.rb
net-ssh-6.0.2 lib/net/ssh/transport/key_expander.rb
net-ssh-6.0.1 lib/net/ssh/transport/key_expander.rb
net-ssh-6.0.0 lib/net/ssh/transport/key_expander.rb
net-ssh-6.0.0.rc1 lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.7.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/key_expander.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.6.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/key_expander.rb
net-ssh-6.0.0.beta2 lib/net/ssh/transport/key_expander.rb