- Home
- Download
- News
- Documentation

- FAQ
- Tutorial
- API reference
- Examples

- XML Digital Signature

- Online Verifier

- XML Encryption
- XML Canonicalization
- Reporting Bugs
- Mailing list
- Related
- Authors

# dl

## Name

dl -- Dynamic crypto-engine library loading support.

## Synopsis

    intxmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
                                                            (xmlSecCryptoDLFunctionsPtr functions);
    xmlSecCryptoDLFunctionsPtrxmlSecCryptoDLGetFunctions   (void);
    xmlSecCryptoDLFunctionsPtrxmlSecCryptoDLGetLibraryFunctions
                                                            (const xmlChar *crypto);
    intxmlSecCryptoDLInit                  (void);
    intxmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);
    intxmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);
    intxmlSecCryptoDLShutdown              (void);
    intxmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);

## Description

Dynamic crypto-engine library loading support.

## Details

### xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()

    int                 xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
                                                            (xmlSecCryptoDLFunctionsPtr functions);

Registers the key data and transforms klasses from `functions` table in xmlsec.

`functions` : | the functions table.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecCryptoDLGetFunctions ()

    xmlSecCryptoDLFunctionsPtr xmlSecCryptoDLGetFunctions   (void);

Gets global crypto functions/transforms/keys data/keys store table.

Returns : | the table.

### xmlSecCryptoDLGetLibraryFunctions ()

    xmlSecCryptoDLFunctionsPtr xmlSecCryptoDLGetLibraryFunctions
                                                            (const xmlChar *crypto);

Loads the xmlsec-<crypto> library and gets global crypto functions/transforms/keys data/keys store table. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

`crypto` : | the desired crypto library name ("openssl", "nss", ...).
Returns : | the table or NULL if an error occurs.

### xmlSecCryptoDLInit ()

    int                 xmlSecCryptoDLInit                  (void);

Initializes dynamic loading engine. This is an internal function and should not be called by application directly.

Returns : | 0 on success or a negative value if an error occurs.

### xmlSecCryptoDLLoadLibrary ()

    int                 xmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);

Loads the xmlsec-<crypto> library. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

`crypto` : | the desired crypto library name ("openssl", "nss", ...).
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecCryptoDLSetFunctions ()

    int                 xmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);

Sets global crypto functions/transforms/keys data/keys store table.

`functions` : | the new table
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecCryptoDLShutdown ()

    int                 xmlSecCryptoDLShutdown              (void);

Shutdowns dynamic loading engine. This is an internal function and should not be called by application directly.

Returns : | 0 on success or a negative value if an error occurs.

### xmlSecCryptoDLUnloadLibrary ()

    int                 xmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);

Unloads the xmlsec-<crypto> library. All pointers to this library functions tables became invalid. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

`crypto` : | the desired crypto library name ("openssl", "nss", ...).
Returns : | 0 on success or a negative value if an error occurs.