dh(3) — Subroutines
NAME
dh − Diffie-Hellman key agreement
SYNOPSIS
#include <openssl/dh.h>
#include <openssl/engine.h> DH ∗DH_new(
void ); void DH_free(
DH ∗dh ); int DH_size(
DH ∗dh ); DH ∗ DH_generate_parameters(
int prime_len,
int generator,
void (∗callback)(int, int, void ∗),
void ∗(cb_arg),
intDH_check (DH ∗dh, int ∗codes) ); int DH_generate_key(
DH ∗dh ); int DH_compute_key(
unsigned char ∗key,
IGNUM ∗pub_key,
B,
DH ∗dh ); void DH_set_default_openssl_method(
DH_METHOD ∗meth ); DH_METHOD ∗DH_get_default_openssl_method(
void ); int DH_set_method(
DH ∗dh,
ENGINE ∗engine ); DH ∗DH_new_method(
ENGINE ∗engine ); DH_METHOD ∗DH_OpenSSL(
void ); int DH_get_ex_new_index(
long argl,
char ∗argp,
int (∗new_func)(),
int (∗dup_func)()),
void (∗free_func)() ); int DH_set_ex_data(
DH ∗d,
int idx,
char ∗arg ); char ∗DH_get_ex_data(
DH ∗d,
int idx ); DH ∗ d2i_DHparams(
DH ∗∗a,
unsigned char ∗∗pp,
long length ); int i2d_DHparams(
DH ∗a,
unsigned char ∗∗pp ); int DHparams_print_fp(
FILE ∗fp,
DH ∗x ); int DHparams_print(
BIO ∗bp,
DH ∗x );
DESCRIPTION
These functions implement the Diffie-Hellman key agreement protocol. The generation of shared DH parameters is described in DH_generate_parameters(3). See DH_generate_key(3) for a description of how to perform a key agreement.
The DH structure consists of several BIGNUM components:
struct
{
BIGNUM ∗p;// prime number (shared)
BIGNUM ∗g;// generator of Z_p (shared)
BIGNUM ∗priv_key;// private DH value x
BIGNUM ∗pub_key;// public DH value g^x
// ...
};
DH
SEE ALSO
Commands: dhparam(1)
Functions: bn(3), dsa(3), err(3), rand_ssl(3), rsa(3), DH_set_method(3), DH_new(3), DH_get_ex_new_index(3), DH_generate_parameters(3), DH_compute_key(3), d2i_DHparams(3), RSA_print(3)