00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef OPENSSLCRYPTOBASE64_INCLUDE
00029 #define OPENSSLCRYPTOBASE64_INCLUDE
00030
00031 #include <xsec/framework/XSECDefs.hpp>
00032 #include <xsec/enc/XSECCryptoBase64.hpp>
00033
00034
00035 #if defined (HAVE_OPENSSL)
00036 # include <openssl/evp.h>
00037
00041
00042
00060 class DSIG_EXPORT OpenSSLCryptoBase64 : public XSECCryptoBase64 {
00061
00062
00063 public :
00064
00065
00066 OpenSSLCryptoBase64() {};
00067 virtual ~OpenSSLCryptoBase64() {};
00068
00071
00080 virtual void decodeInit(void);
00081
00100 virtual unsigned int decode(const unsigned char * inData,
00101 unsigned int inLength,
00102 unsigned char * outData,
00103 unsigned int outLength);
00104
00105
00117 virtual unsigned int decodeFinish(unsigned char * outData,
00118 unsigned int outLength);
00119
00121
00124
00132 virtual void encodeInit(void);
00133
00150 virtual unsigned int encode(const unsigned char * inData,
00151 unsigned int inLength,
00152 unsigned char * outData,
00153 unsigned int outLength);
00154
00166 virtual unsigned int encodeFinish(unsigned char * outData,
00167 unsigned int outLength);
00168
00169
00171
00174
00183 static BIGNUM * b642BN(char * b64in, unsigned int len);
00184
00186
00187 private :
00188
00189 EVP_ENCODE_CTX m_ectx;
00190 EVP_ENCODE_CTX m_dctx;
00191
00192 };
00193
00194
00195
00196 #endif
00197 #endif