Botan

Engine

License
Botan is released under the Simplified BSD License (see LICENSE.md)

interface  Engine;

Base class for all engines. All non-pure abstract functions simply return NULL, indicating the algorithm in question is not supported. Subclasses can reimplement whichever function(s) they want to hook in a particular type.


abstract const string  providerName();

Returns
name of this engine

abstract const BlockCipher  findBlockCipher(in SCANToken algo_spec, AlgorithmFactory af);

Parameters
SCANToken algo_spec the algorithm name/specification
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL

abstract const StreamCipher  findStreamCipher(in SCANToken algo_spec, AlgorithmFactory af);

Parameters
SCANToken algo_spec the algorithm name/specification
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL

abstract const HashFunction  findHash(in SCANToken algo_spec, AlgorithmFactory af);

Parameters
SCANToken algo_spec the algorithm name/specification
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL

abstract const MessageAuthenticationCode  findMac(in SCANToken algo_spec, AlgorithmFactory af);

Parameters
SCANToken algo_spec the algorithm name/specification
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL

abstract const PBKDF  findPbkdf(in SCANToken algo_spec, AlgorithmFactory af);

Parameters
SCANToken algo_spec the algorithm name/specification
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL

abstract const KeyedFilter  getCipher(in string algo_spec, CipherDir dir, AlgorithmFactory af);

Return a new cipher object

Parameters
string algo_spec the algorithm name/specification
CipherDir dir specifies if encryption or decryption is desired
AlgorithmFactory af an algorithm factory object
Returns
newly allocated object, or NULL