diff options
Diffstat (limited to 'libqpdf/qpdf/Pl_RC4.hh')
-rw-r--r-- | libqpdf/qpdf/Pl_RC4.hh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libqpdf/qpdf/Pl_RC4.hh b/libqpdf/qpdf/Pl_RC4.hh new file mode 100644 index 00000000..6bebe5aa --- /dev/null +++ b/libqpdf/qpdf/Pl_RC4.hh @@ -0,0 +1,42 @@ + +#ifndef __PL_RC4_HH__ +#define __PL_RC4_HH__ + +#include <qpdf/Pipeline.hh> + +#include <qpdf/RC4.hh> + +class Pl_RC4: public Pipeline +{ + public: + class Exception: public Pipeline::Exception + { + public: + Exception(std::string const& message) : + Pipeline::Exception(message) + { + } + + virtual ~Exception() throw() + { + } + }; + + static int const def_bufsize = 65536; + + // key_len of -1 means treat key_data as a null-terminated string + Pl_RC4(char const* identifier, Pipeline* next, + unsigned char const* key_data, int key_len = -1, + int out_bufsize = def_bufsize); + virtual ~Pl_RC4(); + + virtual void write(unsigned char* data, int len); + virtual void finish(); + + private: + unsigned char* outbuf; + int out_bufsize; + RC4 rc4; +}; + +#endif // __PL_RC4_HH__ |