Provided by: libssl-doc_3.0.13-0ubuntu3.5_all bug

NAME

       OSSL_DISPATCH - OpenSSL Core type to define a dispatchable function table

SYNOPSIS

        #include <openssl/core.h>

        typedef struct ossl_dispatch_st OSSL_DISPATCH;
        struct ossl_dispatch_st {
            int function_id;
            void (*function)(void);
        };

DESCRIPTION

       This type is a tuple of function identity and function pointer.  Arrays of this type are passed between
       the OpenSSL libraries and the providers to describe what functionality one side provides to the other.

       Arrays of this type must be terminated with a tuple having function identity zero and function pointer
       NULL.

   OSSL_DISPATCH fields
       function_id
           OpenSSL defined function identity of the implemented function.

       function
           Pointer  to  the  implemented  function  itself.   Despite  the generic definition of this field, the
           implemented function it points to must have a function signature that corresponds to the function_id

       Available   function   identities   and   corresponding    function    signatures    are    defined    in
       openssl-core_dispatch.h(7).    Furthermore,  the  chosen  function  identities  and  associated  function
       signature must be chosen specifically for the operation that it's intended  for,  as  determined  by  the
       intended OSSL_ALGORITHM(3) array.

       Any  function  identity  not recognised by the recipient of this type will be ignored.  This ensures that
       providers built with one OpenSSL version in mind will work together with any other OpenSSL  version  that
       supports this mechanism.

SEE ALSO

       crypto(7), openssl-core_dispatch.h(7), OSSL_ALGORITHM(3)

HISTORY

       OSSL_DISPATCH was added in OpenSSL 3.0.

COPYRIGHT

       Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.

       Licensed  under  the  Apache License 2.0 (the "License").  You may not use this file except in compliance
       with the License.  You can obtain  a  copy  in  the  file  LICENSE  in  the  source  distribution  or  at
       <https://www.openssl.org/source/license.html>.

3.0.13                                             2025-02-05                                OSSL_DISPATCH(3SSL)