 |
Index for Section 3 |
|
 |
Alphabetical listing for D |
|
 |
Bottom of page |
|
DH_set_method(3)
NAME
DH_set_method, DH_set_default_openssl_method,
DH_get_default_openssl_method, DH_new_method, DH_OpenSSL - Select DH method
SYNOPSIS
#include <openssl/dh.h>
#include <openssl/engine.h>
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 );
DESCRIPTION
A DH_METHOD specifies the functions that OpenSSL uses for Diffie-Hellman
operations. By modifying the method, alternative implementations such as
hardware accelerators may be used.
Initially, the default is to use the OpenSSL internal implementation. The
DH_OpenSSL() function returns a pointer to that method.
The DH_set_default_openssl_method() function makes meth the default method
for all DH structures created later. This is true only while the default
engine for Diffie-Hellman operations remains as openssl. Engines provide an
encapsulation for implementations of one or more algorithms, and all the DH
functions mentioned here operate within the scope of the default openssl
engine.
The DH_get_default_openssl_method() function returns a pointer to the
current default method for the openssl engine.
The DH_set_method() function selects engine as the engine that will be
responsible for all operations using the structure dh. If this function
completes successfully, then the dh structure will have its own functional
reference of engine, so the caller should remember to free their own
reference to engine when finished with it. An engine's DH_METHOD can be
retrieved (or set) by the ENGINE_get_DH() or ENGINE_set_DH() functions.
The DH_new_method() function allocates and initializes a DH structure so
that engine will be used for the DH operations. If engine is NULL, the
default engine for Diffie-Hellman operations is used.
DH_METHOD Structure
typedef struct dh_meth_st
{
/* name of the implementation */
const char *name;
/* generate private and public DH values for key agreement */
int (*generate_key)(DH *dh);
/* compute shared secret */
int (*compute_key)(unsigned char *key, BIGNUM *pub_key, DH *dh);
/* compute r = a ^ p mod m (May be NULL for some implementations) */
int (*bn_mod_exp)(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
const BIGNUM *m, BN_CTX *ctx,
BN_MONT_CTX *m_ctx);
/* called at DH_new */
int (*init)(DH *dh);
/* called at DH_free */
int (*finish)(DH *dh);
int flags;
char *app_data; /* ?? */
} DH_METHOD;
RETURN VALUES
The DH_OpenSSL() and DH_get_default_method() functions return pointers to
the respective DH_METHODs.
The DH_set_default_openssl_method() function returns no value.
The DH_set_method() function returns non-zero if the engin associated with
dh was successfully changed to engine.
The DH_new_method() function returns NULL and sets an error code that can
be obtained by ERR_get_error() if the allocation fails. Otherwise it
returns a pointer to the newly allocated structure.
HISTORY
The DH_set_default_method(), DH_get_default_method(), DH_set_method(),
DH_new_method(), and DH_OpenSSL() functions were added in OpenSSL 0.9.4.
The DH_set_default_openssl_method() and DH_get_default_openssl_method()
replaced DH_set_default_method() and DH_get_default_method() respectively,
and DH_set_method() and DH_new_method() were altered to use ENGINEs rather
than DH_METHODs during development of OpenSSL 0.9.6.
SEE ALSO
Functions: dh(3), DH_new(3)
 |
Index for Section 3 |
|
 |
Alphabetical listing for D |
|
 |
Top of page |
|