4 * This is free software; see Copyright file in the source
5 * distribution for preciese wording.
7 * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
9 #ifndef __XMLSEC_GNUTLS_CRYPTO_H__
10 #define __XMLSEC_GNUTLS_CRYPTO_H__
14 #endif /* __cplusplus */
16 #include <xmlsec/xmlsec.h>
17 #include <xmlsec/keys.h>
18 #include <xmlsec/transforms.h>
19 #include <xmlsec/dl.h>
21 XMLSEC_CRYPTO_EXPORT xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_gnutls(void);
26 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSInit (void);
27 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSShutdown (void);
29 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSKeysMngrInit (xmlSecKeysMngrPtr mngr);
30 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSGenerateRandom (xmlSecBufferPtr buffer,
34 /********************************************************************
38 *******************************************************************/
41 * xmlSecGnuTLSKeyDataAesId:
43 * The AES key data klass.
45 #define xmlSecGnuTLSKeyDataAesId \
46 xmlSecGnuTLSKeyDataAesGetKlass()
47 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecGnuTLSKeyDataAesGetKlass (void);
48 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSKeyDataAesSet (xmlSecKeyDataPtr data,
49 const xmlSecByte* buf,
52 * xmlSecGnuTLSTransformAes128CbcId:
54 * The AES128 CBC cipher transform klass.
56 #define xmlSecGnuTLSTransformAes128CbcId \
57 xmlSecGnuTLSTransformAes128CbcGetKlass()
58 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformAes128CbcGetKlass(void);
61 * xmlSecGnuTLSTransformAes192CbcId:
63 * The AES192 CBC cipher transform klass.
65 #define xmlSecGnuTLSTransformAes192CbcId \
66 xmlSecGnuTLSTransformAes192CbcGetKlass()
67 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformAes192CbcGetKlass(void);
70 * xmlSecGnuTLSTransformAes256CbcId:
72 * The AES256 CBC cipher transform klass.
74 #define xmlSecGnuTLSTransformAes256CbcId \
75 xmlSecGnuTLSTransformAes256CbcGetKlass()
76 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformAes256CbcGetKlass(void);
78 #endif /* XMLSEC_NO_AES */
80 /********************************************************************
84 *******************************************************************/
87 * xmlSecGnuTLSKeyDataDesId:
89 * The DES key data klass.
91 #define xmlSecGnuTLSKeyDataDesId \
92 xmlSecGnuTLSKeyDataDesGetKlass()
93 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecGnuTLSKeyDataDesGetKlass (void);
94 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSKeyDataDesSet (xmlSecKeyDataPtr data,
95 const xmlSecByte* buf,
99 * xmlSecGnuTLSTransformDes3CbcId:
101 * The DES3 CBC cipher transform klass.
103 #define xmlSecGnuTLSTransformDes3CbcId \
104 xmlSecGnuTLSTransformDes3CbcGetKlass()
105 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformDes3CbcGetKlass(void);
107 #endif /* XMLSEC_NO_DES */
110 /********************************************************************
114 *******************************************************************/
115 #ifndef XMLSEC_NO_HMAC
117 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSHmacGetMinOutputLength(void);
118 XMLSEC_CRYPTO_EXPORT void xmlSecGnuTLSHmacSetMinOutputLength(int min_length);
121 * xmlSecGnuTLSKeyDataHmacId:
123 * The HMAC key klass.
125 #define xmlSecGnuTLSKeyDataHmacId \
126 xmlSecGnuTLSKeyDataHmacGetKlass()
127 XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecGnuTLSKeyDataHmacGetKlass (void);
128 XMLSEC_CRYPTO_EXPORT int xmlSecGnuTLSKeyDataHmacSet (xmlSecKeyDataPtr data,
129 const xmlSecByte* buf,
132 * xmlSecGnuTLSTransformHmacMd5Id:
134 * The HMAC with MD5 signature transform klass.
136 #define xmlSecGnuTLSTransformHmacMd5Id \
137 xmlSecGnuTLSTransformHmacMd5GetKlass()
138 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacMd5GetKlass(void);
139 #endif /* XMLSEC_NO_HMAC */
142 * xmlSecGnuTLSTransformHmacRipemd160Id:
144 * The HMAC with RipeMD160 signature transform klass.
146 #define xmlSecGnuTLSTransformHmacRipemd160Id \
147 xmlSecGnuTLSTransformHmacRipemd160GetKlass()
148 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacRipemd160GetKlass(void);
151 * xmlSecGnuTLSTransformHmacSha1Id:
153 * The HMAC with SHA1 signature transform klass.
155 #define xmlSecGnuTLSTransformHmacSha1Id \
156 xmlSecGnuTLSTransformHmacSha1GetKlass()
157 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformHmacSha1GetKlass(void);
161 /********************************************************************
165 *******************************************************************/
166 #ifndef XMLSEC_NO_SHA1
168 * xmlSecGnuTLSTransformSha1Id:
170 * The SHA1 digest transform klass.
172 #define xmlSecGnuTLSTransformSha1Id \
173 xmlSecGnuTLSTransformSha1GetKlass()
174 XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecGnuTLSTransformSha1GetKlass(void);
175 #endif /* XMLSEC_NO_SHA1 */
179 #endif /* __cplusplus */
181 #endif /* __XMLSEC_GNUTLS_CRYPTO_H__ */
183 #define __XMLSEC_GNUTLS_CRYPTO_H__