OBJ_ADD_SIGID(3)

NAME
OBJ_add_sigid, OBJ_sigid_free, OBJ_find_sigid_algs, OBJ_find_sigid_by_algs - signature algorithm mappings

SYNOPSIS
#include <openssl/objects.h>
int
OBJ_add_sigid(int signature, int digest, int encryption);
void
OBJ_sigid_free(void);
int
OBJ_find_sigid_algs(int signature, int *pdigest, int *pencryption);
int
OBJ_find_sigid_by_algs(int *psignature, int digest, int encryption);

DESCRIPTION
OBJ_add_sigid() defines the signature algorithm to use the specified digest and encryption algorithms. Making sure that this does not conflict with earlier invocations of OBJ_add_sigid() is the responsibility of the caller. Definitions made with OBJ_add_sigid() take precedence over definitions built into the library.

OBJ_sigid_free() deletes all definitions made with OBJ_add_sigid().

OBJ_find_sigid_algs() looks up the signature algorithm. If it is found, the associated digest algorithm is stored in *pdigest unless pdigest is a NULL pointer, and the associated encryption algorithm is stored in *pencryption unless pencryption is a NULL pointer.

OBJ_find_sigid_by_algs() looks up the pair (digest, encryption). If it is found, the associated signature algorithm is stored in *psignature unless psignature is a NULL pointer.

RETURN VALUES
OBJ_add_sigid() returns 1 on success or 0 if memory allocation fails.

OBJ_find_sigid_algs() returns 1 if a definition of the signature algorithm is found or 0 if a definition of the signature algorithm is neither built into the library nor provided with OBJ_add_sigid().

OBJ_find_sigid_by_algs() returns 1 if a signature algorithm using the specified digest and encryption algorithms is defined or 0 if the definition of such an algorithm is neither built into the library nor provided with OBJ_add_sigid().

SEE ALSO
EVP_cleanup(3), OBJ_create(3), OBJ_NAME_add(3), OBJ_nid2obj(3)

HISTORY
These functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.