Botan: src/stream/ctr/ctr.h Source File

Botan 1.10.17

ctr.h
Go to the documentation of this file.
1 /*
2 * CTR-BE Mode
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Distributed under the terms of the Botan license
6 */
7
8 #ifndef BOTAN_CTR_BE_H__
9 #define BOTAN_CTR_BE_H__
10
11 #include <botan/block_cipher.h>
12 #include <botan/stream_cipher.h>
13
14 namespace Botan {
15
16 /**
17 * CTR-BE (Counter mode, big-endian)
18 */
19 class BOTAN_DLL CTR_BE : public StreamCipher
20 {
21 public:
22 void cipher(const byte in[], byte out[], size_t length);
23
24 void set_iv(const byte iv[], size_t iv_len);
25
26 bool valid_iv_length(size_t iv_len) const
27 { return (iv_len <= permutation->block_size()); }
28
29 Key_Length_Specification key_spec() const
30 {
31 return permutation->key_spec();
32 }
33
34 std::string name() const;
35
36 CTR_BE* clone() const
37 { return new CTR_BE(permutation->clone()); }
38
39 void clear();
40
41 /**
42 * @param cipher the underlying block cipher to use
43 */
44 CTR_BE(BlockCipher* cipher);
45 ~CTR_BE();
46 private:
47 void key_schedule(const byte key[], size_t key_len);
48 void increment_counter();
49
50 BlockCipher* permutation;
51 SecureVector<byte> counter, buffer;
52 size_t position;
53 };
54
55 }
56
57 #endif
Botan::Key_Length_Specification
Definition: key_spec.h:18
Botan::CTR_BE
Definition: ctr.h:19
Botan::byte
unsigned char byte
Definition: types.h:22
Botan::CTR_BE::clone
CTR_BE * clone() const
Definition: ctr.h:36
Botan::StreamCipher
Definition: stream_cipher.h:18
Botan
Definition: algo_base.h:14
Botan::CTR_BE::key_spec
Key_Length_Specification key_spec() const
Definition: ctr.h:29
Botan::SecureVector< byte >
Botan::CTR_BE::valid_iv_length
bool valid_iv_length(size_t iv_len) const
Definition: ctr.h:26
Botan::BlockCipher
Definition: block_cipher.h:18