You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
14 years ago
|
//////////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: actIStreamCipher.h
|
||
|
// Product: cv act library
|
||
|
// Purpose: The class IStreamCipher creates the symmetric StreamCipher, which is
|
||
|
// defined by IStreamCipherKey. It offers operations like encrypt, decrypt
|
||
|
// and queries involving validity or keylength etc.
|
||
|
//
|
||
|
// Copyright: (c) 2001 cv cryptovision GmbH
|
||
|
// all rights reserved
|
||
|
// Licence: The conditions for the use of this software are regulated
|
||
|
// in the cv act library licence agreement.
|
||
|
//////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef ACT_IStreamCipher_h
|
||
|
#define ACT_IStreamCipher_h
|
||
|
|
||
|
#include "actBasics.h"
|
||
|
|
||
|
namespace act
|
||
|
{
|
||
|
|
||
|
class Blob;
|
||
|
|
||
|
class IStreamCipher
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
virtual IStreamCipher* Clone() const =0;
|
||
|
virtual void Import( const Blob& indata ) =0;
|
||
|
virtual void Export( Blob& outdata ) const =0;
|
||
|
|
||
|
virtual void SetRawKey( const Blob& keyblob ) =0;
|
||
|
virtual void GetRawKey( Blob& keyblob ) const =0;
|
||
|
|
||
|
virtual void Process(const byte* input, byte* output, size_t input_len) const =0;
|
||
|
|
||
|
virtual size_t GetKeySize(size_t keysize=0) const =0;
|
||
|
virtual size_t GetMinKeySize() const =0;
|
||
|
virtual size_t GetMaxKeySize() const =0;
|
||
|
virtual size_t GetNextKeySize(size_t prevsize) const =0;
|
||
|
|
||
|
virtual void* GetCreatePointer() const =0;
|
||
|
|
||
|
virtual ~IStreamCipher() {};
|
||
|
};
|
||
|
|
||
|
|
||
|
}// namespace act
|
||
|
|
||
|
#endif
|
||
|
|