class OpenSSL::PKey::DH

Eine Implementierung des Diffie-Hellman-Schlüsselaustauschprotokolls basierend auf diskreten Logarithmen in endlichen Körpern, derselben Grundlage, auf der DSA aufbaut.

Accessor-Methoden für die Diffie-Hellman-Parameter

DH#p

Die Primzahl (eine OpenSSL::BN) der Diffie-Hellman-Parameter.

DH#g

Der Generator (eine OpenSSL::BN) g der Diffie-Hellman-Parameter.

DH#pub_key

Der sitzungsspezifische öffentliche Schlüssel (eine OpenSSL::BN), der zum privaten Schlüssel passt. Dieser muss an DH#compute_key übergeben werden.

DH#priv_key

Der sitzungsspezifische private Schlüssel, eine OpenSSL::BN.

Beispiel für einen Schlüsselaustausch

# you may send the parameters (der) and own public key (pub1) publicly
# to the participating party
dh1 = OpenSSL::PKey::DH.new(2048)
der = dh1.to_der
pub1 = dh1.pub_key

# the other party generates its per-session key pair
dhparams = OpenSSL::PKey::DH.new(der)
dh2 = OpenSSL::PKey.generate_key(dhparams)
pub2 = dh2.pub_key

symm_key1 = dh1.compute_key(pub2)
symm_key2 = dh2.compute_key(pub1)
puts symm_key1 == symm_key2 # => true