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 #ifndef TXFMCIPHER_INCLUDE
00027 #define TXFMCIPHER_INCLUDE
00028
00029
00030
00031 #include <xsec/transformers/TXFMBase.hpp>
00032 #include <xsec/enc/XSECCryptoSymmetricKey.hpp>
00033
00042 class DSIG_EXPORT TXFMCipher : public TXFMBase {
00043
00044 public:
00045
00046
00047
00048 TXFMCipher(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc, XSECCryptoKey * key, bool encrypt);
00049 ~TXFMCipher();
00050
00051
00052
00053 virtual TXFMBase::ioType getInputType(void);
00054 virtual TXFMBase::ioType getOutputType(void);
00055 virtual nodeType getNodeType(void);
00056
00057
00058
00059 void setKey(unsigned char * key, unsigned int keyLen);
00060
00061
00062
00063 virtual void setInput(TXFMBase * newInput);
00064
00065
00066
00067 virtual unsigned int readBytes(XMLByte * const toFill, const unsigned int maxToFill);
00068 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *getDocument();
00069 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getFragmentNode();
00070 virtual const XMLCh * getFragmentId();
00071
00072 private:
00073 TXFMCipher();
00074
00075 bool m_doEncrypt;
00076 XSECCryptoKey * mp_cipher;
00077 bool m_complete;
00078 unsigned char m_inputBuffer[2050];
00079 unsigned char m_outputBuffer[3072];
00080 unsigned int m_remaining;
00081
00082 };
00083
00084 #endif
00085