Class: OpenSSL::PKey::DH

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ssh/transport/openssl.rb

Overview

This class is originally defined in the OpenSSL module. As needed, methods have been added to it by the Net::SSH module for convenience in dealing with SSH functionality.

Instance Method Summary collapse

Instance Method Details

#valid?Boolean

Determines whether the pub_key for this key is valid. (This algorithm lifted more-or-less directly from OpenSSH, dh.c, dh_pub_is_valid.)

Returns:

  • (Boolean)


36
37
38
39
40
41
42
# File 'lib/net/ssh/transport/openssl.rb', line 36

def valid?
  return false if pub_key.nil? || pub_key < 0

  bits_set = 0
  pub_key.num_bits.times { |i| bits_set += 1 if pub_key.bit_set?(i) }
  return (bits_set > 1 && pub_key < p)
end