Git init
[external/xmlsec1.git] / include / xmlsec / gnutls / crypto.h
1 /** 
2  * XMLSec library
3  *
4  * This is free software; see Copyright file in the source
5  * distribution for preciese wording.
6  * 
7  * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
8  */
9 #ifndef __XMLSEC_GNUTLS_CRYPTO_H__
10 #define __XMLSEC_GNUTLS_CRYPTO_H__    
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* __cplusplus */ 
15
16 #include <xmlsec/xmlsec.h>
17 #include <xmlsec/keys.h>
18 #include <xmlsec/transforms.h>
19 #include <xmlsec/dl.h>
20
21 XMLSEC_CRYPTO_EXPORT xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_gnutls(void);
22
23 /**
24  * Init shutdown
25  */
26 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSInit                (void);
27 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSShutdown            (void);
28
29 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSKeysMngrInit        (xmlSecKeysMngrPtr mngr);
30 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSGenerateRandom      (xmlSecBufferPtr buffer,
31                                                                          xmlSecSize size);
32
33
34 /********************************************************************
35  *
36  * AES transforms
37  *
38  *******************************************************************/
39 #ifndef XMLSEC_NO_AES
40 /**
41  * xmlSecGnuTLSKeyDataAesId:
42  * 
43  * The AES key data klass.
44  */
45 #define xmlSecGnuTLSKeyDataAesId \
46         xmlSecGnuTLSKeyDataAesGetKlass()
47 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId    xmlSecGnuTLSKeyDataAesGetKlass  (void);
48 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSKeyDataAesSet       (xmlSecKeyDataPtr data,
49                                                                          const xmlSecByte* buf,
50                                                                          xmlSecSize bufSize);
51 /**
52  * xmlSecGnuTLSTransformAes128CbcId:
53  * 
54  * The AES128 CBC cipher transform klass.
55  */
56 #define xmlSecGnuTLSTransformAes128CbcId \
57         xmlSecGnuTLSTransformAes128CbcGetKlass()
58 XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecGnuTLSTransformAes128CbcGetKlass(void);
59
60 /**
61  * xmlSecGnuTLSTransformAes192CbcId:
62  * 
63  * The AES192 CBC cipher transform klass.
64  */
65 #define xmlSecGnuTLSTransformAes192CbcId \
66         xmlSecGnuTLSTransformAes192CbcGetKlass()
67 XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecGnuTLSTransformAes192CbcGetKlass(void);
68
69 /**
70  * xmlSecGnuTLSTransformAes256CbcId:
71  * 
72  * The AES256 CBC cipher transform klass.
73  */
74 #define xmlSecGnuTLSTransformAes256CbcId \
75         xmlSecGnuTLSTransformAes256CbcGetKlass()
76 XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecGnuTLSTransformAes256CbcGetKlass(void);
77
78 #endif /* XMLSEC_NO_AES */
79
80 /********************************************************************
81  *
82  * DES transforms
83  *
84  *******************************************************************/
85 #ifndef XMLSEC_NO_DES
86 /**
87  * xmlSecGnuTLSKeyDataDesId:
88  * 
89  * The DES key data klass.
90  */
91 #define xmlSecGnuTLSKeyDataDesId \
92         xmlSecGnuTLSKeyDataDesGetKlass()
93 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId    xmlSecGnuTLSKeyDataDesGetKlass  (void);
94 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSKeyDataDesSet       (xmlSecKeyDataPtr data,
95                                                                          const xmlSecByte* buf,
96                                                                          xmlSecSize bufSize);
97
98 /**
99  * xmlSecGnuTLSTransformDes3CbcId:
100  * 
101  * The DES3 CBC cipher transform klass.
102  */
103 #define xmlSecGnuTLSTransformDes3CbcId \
104         xmlSecGnuTLSTransformDes3CbcGetKlass()
105 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformDes3CbcGetKlass(void);
106
107 #endif /* XMLSEC_NO_DES */
108
109
110 /********************************************************************
111  *
112  * HMAC transforms
113  *
114  *******************************************************************/
115 #ifndef XMLSEC_NO_HMAC
116
117 XMLSEC_CRYPTO_EXPORT int               xmlSecGnuTLSHmacGetMinOutputLength(void);
118 XMLSEC_CRYPTO_EXPORT void              xmlSecGnuTLSHmacSetMinOutputLength(int min_length);
119
120 /** 
121  * xmlSecGnuTLSKeyDataHmacId:
122  * 
123  * The HMAC key klass.
124  */
125 #define xmlSecGnuTLSKeyDataHmacId \
126         xmlSecGnuTLSKeyDataHmacGetKlass()
127 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId    xmlSecGnuTLSKeyDataHmacGetKlass (void);
128 XMLSEC_CRYPTO_EXPORT int                xmlSecGnuTLSKeyDataHmacSet      (xmlSecKeyDataPtr data,
129                                                                          const xmlSecByte* buf,
130                                                                          xmlSecSize bufSize);
131 /**
132  * xmlSecGnuTLSTransformHmacMd5Id:
133  * 
134  * The HMAC with MD5 signature transform klass.
135  */
136 #define xmlSecGnuTLSTransformHmacMd5Id \
137         xmlSecGnuTLSTransformHmacMd5GetKlass()
138 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacMd5GetKlass(void);
139 #endif /* XMLSEC_NO_HMAC */
140
141 /**
142  * xmlSecGnuTLSTransformHmacRipemd160Id:
143  * 
144  * The HMAC with RipeMD160 signature transform klass.
145  */
146 #define xmlSecGnuTLSTransformHmacRipemd160Id \
147         xmlSecGnuTLSTransformHmacRipemd160GetKlass()
148 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacRipemd160GetKlass(void);
149
150 /**
151  * xmlSecGnuTLSTransformHmacSha1Id:
152  * 
153  * The HMAC with SHA1 signature transform klass.
154  */
155 #define xmlSecGnuTLSTransformHmacSha1Id \
156         xmlSecGnuTLSTransformHmacSha1GetKlass()
157 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacSha1GetKlass(void);
158
159
160
161 /********************************************************************
162  *
163  * SHA1 transform
164  *
165  *******************************************************************/
166 #ifndef XMLSEC_NO_SHA1
167 /**
168  * xmlSecGnuTLSTransformSha1Id:
169  * 
170  * The SHA1 digest transform klass.
171  */
172 #define xmlSecGnuTLSTransformSha1Id \
173         xmlSecGnuTLSTransformSha1GetKlass()
174 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformSha1GetKlass(void);
175 #endif /* XMLSEC_NO_SHA1 */
176
177 #ifdef __cplusplus
178 }
179 #endif /* __cplusplus */
180
181 #endif /* __XMLSEC_GNUTLS_CRYPTO_H__ */
182
183 #define __XMLSEC_GNUTLS_CRYPTO_H__