Skip to content
class method

OpenSSL::PKey::DH.new

(::Integer size, ?::Integer generator) -> ::OpenSSL::PKey::DH
(::String pem) -> ::OpenSSL::PKey::DH
() -> ::OpenSSL::PKey::DH
DH.new → dh
DH.new(string) → dh
DH.new(size [, generator]) → dh

Creates a new instance of OpenSSL::PKey::DH.

If called without arguments, an empty instance without any parameter or key components is created. Use set_pqg to manually set the parameters afterwards (and optionally set_key to set private and public key components). This form is not compatible with OpenSSL 3.0 or later.

If a String is given, tries to parse it as a DER- or PEM- encoded parameters. See also OpenSSL::PKey.read which can parse keys of any kinds.

The DH.new(size [, generator]) form is an alias of DH.generate.

string

A String that contains the DER or PEM encoded key.

size

See DH.generate.

generator

See DH.generate.

Examples:

Example
# Creating an instance from scratch
# Note that this is deprecated and will result in ArgumentError when
# using OpenSSL 3.0 or later.
dh = OpenSSL::PKey::DH.new
dh.set_pqg(bn_p, nil, bn_g)

# Generating a parameters and a key pair
dh = OpenSSL::PKey::DH.new(2048) # An alias of OpenSSL::PKey::DH.generate(2048)

# Reading DH parameters from a PEM-encoded string
dh_params = OpenSSL::PKey::DH.new(File.read('parameters.pem')) # loads parameters only
dh = OpenSSL::PKey.generate_key(dh_params) # generates a key pair
See also .generate #compute_key #export also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0