ENGINE_REGISTER_RSA(3)

NAME
ENGINE_register_RSA, ENGINE_register_DSA, ENGINE_register_ECDH, ENGINE_register_ECDSA, ENGINE_register_DH, ENGINE_register_RAND, ENGINE_register_STORE, ENGINE_register_ciphers, ENGINE_register_digests, ENGINE_register_complete - register an ENGINE as implementing an algorithm

SYNOPSIS
#include <openssl/engine.h>
int
ENGINE_register_RSA(ENGINE *e);
int
ENGINE_register_DSA(ENGINE *e);
int
ENGINE_register_ECDH(ENGINE *e);
int
ENGINE_register_ECDSA(ENGINE *e);
int
ENGINE_register_DH(ENGINE *e);
int
ENGINE_register_RAND(ENGINE *e);
int
ENGINE_register_STORE(ENGINE *e);
int
ENGINE_register_ciphers(ENGINE *e);
int
ENGINE_register_digests(ENGINE *e);
int
ENGINE_register_complete(ENGINE *e);

DESCRIPTION
In addition to the global table described in ENGINE_add(3), the crypto library maintains several tables containing references to ENGINE objects implementing one specific cryptographic algorithm.

The functions listed in the present manual page append e to the end of the table for the respective algorithm.

If e does not contain a method for the requested algorithm, these functions succeed without having any effect.

If e is already registered for the given algorithm, they move it to the end of the respective table.

ENGINE_register_ciphers() and ENGINE_register_digests() are special in so far as an engine may implement more than one cipher or more than one digest. In that case, e is registered for all the ciphers or digests it implements.

ENGINE_register_complete() registers e for all algorithms it implements by calling all the other functions.

RETURN VALUES
These functions return 1 on success or 0 on error. They only fail if insufficient memory is available.

SEE ALSO
ENGINE_add(3), ENGINE_get_default_RSA(3), ENGINE_init(3), ENGINE_new(3), ENGINE_register_all_RSA(3), ENGINE_set_default(3), ENGINE_set_RSA(3), ENGINE_unregister_RSA(3)

HISTORY
ENGINE_register_RSA(), ENGINE_register_DSA(), ENGINE_register_DH(), ENGINE_register_RAND(), ENGINE_register_ciphers(), ENGINE_register_digests(), and ENGINE_register_complete() first appeared in OpenSSL 0.9.7 and have been available since OpenBSD 3.2.

ENGINE_register_ECDH(), ENGINE_register_ECDSA(), and ENGINE_register_STORE() first appeared in OpenSSL 0.9.8 and have been available since OpenBSD 4.5.

BUGS
ENGINE_register_complete() ignores all errors, even memory allocation failure, and always returns 1.