1 /*
2  * XML Security Library (http://www.aleksey.com/xmlsec).
3  *
4  *
5  * This is free software; see Copyright file in the source
6  * distribution for preciese wording.
7  *
8  * Copyright (C) 2002-2016 Aleksey Sanin <aleksey@aleksey.com>. All Rights Reserved.
9  */
10 #ifndef __XMLSEC_DL_H__
11 #define __XMLSEC_DL_H__
12 
13 #ifndef XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
14 
15 #include <libxml/tree.h>
16 #include <libxml/xmlIO.h>
17 
18 #include <xmlsec/xmlsec.h>
19 #include <xmlsec/keysdata.h>
20 #include <xmlsec/keys.h>
21 #include <xmlsec/keysmngr.h>
22 #include <xmlsec/transforms.h>
23 
24 #endif /* XMLSEC_NO_CRYPTO_DYNAMIC_LOADING */
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29 
30 typedef struct _xmlSecCryptoDLFunctions         xmlSecCryptoDLFunctions,
31                                                 *xmlSecCryptoDLFunctionsPtr;
32 
33 XMLSEC_EXPORT int                               xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
34                                                                             (xmlSecCryptoDLFunctionsPtr functions);
35 
36 #ifndef XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
37 
38 /****************************************************************************
39  *
40  * Dynamic load functions
41  *
42  ****************************************************************************/
43 XMLSEC_EXPORT int                               xmlSecCryptoDLInit              (void);
44 XMLSEC_EXPORT int                               xmlSecCryptoDLShutdown          (void);
45 
46 XMLSEC_EXPORT int                               xmlSecCryptoDLLoadLibrary       (const xmlChar* crypto);
47 XMLSEC_EXPORT xmlSecCryptoDLFunctionsPtr        xmlSecCryptoDLGetLibraryFunctions(const xmlChar* crypto);
48 XMLSEC_EXPORT int                               xmlSecCryptoDLUnloadLibrary     (const xmlChar* crypto);
49 
50 XMLSEC_EXPORT int                               xmlSecCryptoDLSetFunctions      (xmlSecCryptoDLFunctionsPtr functions);
51 XMLSEC_EXPORT xmlSecCryptoDLFunctionsPtr        xmlSecCryptoDLGetFunctions      (void);
52 
53 #endif /* XMLSEC_NO_CRYPTO_DYNAMIC_LOADING */
54 
55 #ifdef __cplusplus
56 }
57 #endif /* __cplusplus */
58 
59 #endif /* __XMLSEC_APP_H__ */
60 
61