13 keylen(_keylen), keyoff(0)
15 key =
new unsigned char[keylen];
16 memcpy(key, _key, keylen);
20WvXOREncoder::~WvXOREncoder()
29 while ((len = inbuf.optgettable()) != 0)
31 const unsigned char *data = inbuf.get(len);
32 unsigned char *out = outbuf.alloc(len);
37 *out++ = (*data++) ^ key[keyoff++];
46WvXORStream::WvXORStream(
WvStream *_cloned,
47 const void *_key,
size_t _keysize) :
50 readchain.append(
new WvXOREncoder(_key, _keysize),
true);
51 writechain.append(
new WvXOREncoder(_key, _keysize),
true);
WvEncoderStream chains a series of encoders on the input and output ports of the underlying stream to...
Unified support for streams, that is, sequences of bytes that may or may not be ready for read/write ...
An encoder implementing simple XOR encryption.
bool _encode(WvBuf &in, WvBuf &out, bool flush)
Template method implementation of encode().
WvXOREncoder(const void *_key, size_t _keylen)
Creates a new XOR encoder / decoder.