|
DH_set_method(3)
Contents
|
DH_set_method, DH_set_default_openssl_method,
DH_get_default_openssl_method, DH_new_method, DH_OpenSSL -
Select DH method
#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 );
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 DiffieHellman
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 DiffieHellman
operations is used.
DH_METHOD Structure [Toc] [Back]
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;
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.
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.
Functions: dh(3), DH_new(3)
DH_set_method(3)
[ Back ] |