Hi all, I'm making another open-source program that uses Crypto++ and I'm having trouble doing what I want. I'm abstracting out the Crypto++ from the rest of my program by containing Crypto++ in a cryptography manager.

*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



Reply via email to