*The point*: I want the user to be able to select (almost) any combination of cipher modes and ciphers, something like this:
<code>
template<typename T>
SymmetricCipher * getMode(CryptDefines::Mode mode, const SecByteBlock& key,
const unsigned int keylength,
const SecByteBlock& iv)
throw (CryptoManager::AlgoError)
{
switch (mode) {
case(CryptDefines::CBC_CTS):
return new CBC_CTS_Mode<T>::Encryption(key, keylength, iv);
</code>
Which is in turned called by a cipher switching function. Sadly with the templates and multiple inheritance of the lib I'm not sure what base class to return--in this case it tells me that Encryption isn't a type which I see--any suggestions one how to make something like this work?
Thanks for any help,
jesse
