1
/*************************************************
3
* (C) 1999-2007 The Botan Project *
4
*************************************************/
6
#ifndef BOTAN_TURING_H__
7
#define BOTAN_TURING_H__
9
#include <botan/base.h>
13
/*************************************************
15
*************************************************/
16
class Turing : public StreamCipher
20
std::string name() const { return "Turing"; }
21
StreamCipher* clone() const { return new Turing; }
22
Turing() : StreamCipher(4, 32, 4) { position = 0; }
24
void cipher(const byte[], byte[], u32bit);
25
void key(const byte[], u32bit);
26
void resync(const byte[], u32bit);
29
static u32bit fixedS(u32bit);
30
static void gen_sbox(MemoryRegion<u32bit>&, u32bit,
31
const MemoryRegion<u32bit>&);
33
static const u32bit Q_BOX[256];
34
static const byte SBOX[256], OFFSETS[272];
36
SecureBuffer<u32bit, 256> S0, S1, S2, S3;
37
SecureBuffer<u32bit, 17> R;
38
SecureVector<u32bit> K;
39
SecureBuffer<byte, 340> buffer;