## dl dl — Dynamic crypto-engine library loading functions. |

## Stability Level

Stable, unless otherwise indicated

## Functions

int | xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()
int | xmlSecCryptoDLInit ()
int | xmlSecCryptoDLShutdown ()
int | xmlSecCryptoDLLoadLibrary ()
xmlSecCryptoDLFunctionsPtr | xmlSecCryptoDLGetLibraryFunctions ()
int | xmlSecCryptoDLUnloadLibrary ()
int | xmlSecCryptoDLSetFunctions ()
xmlSecCryptoDLFunctionsPtr | xmlSecCryptoDLGetFunctions ()

## Description

## Functions

### xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()

    int
    xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
                                   (xmlSecCryptoDLFunctionsPtr functions);

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

#### Parameters

functions | the functions table. |

#### Returns

0 on success or a negative value 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.

### 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.

### 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.

#### Parameters

crypto | the desired crypto library name ("openssl", "nss", ...). If NULL then the default crypto engine will be used. |

#### Returns

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

### 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.

#### Parameters

crypto | the desired crypto library name ("openssl", "nss", ...). |

#### Returns

the table or NULL 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.

#### Parameters

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.

#### Parameters

functions | the new 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.