Botan 1.10.17

stream_cipher.h
Go to the documentation of this file.
1 /*
2 * Stream Cipher
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Distributed under the terms of the Botan license
6 */
7
8 #ifndef BOTAN_STREAM_CIPHER_H__
9 #define BOTAN_STREAM_CIPHER_H__
10
11 #include <botan/sym_algo.h>
12
13 namespace Botan {
14
15 /**
16 * Base class for all stream ciphers
17 */
18 class BOTAN_DLL StreamCipher : public SymmetricAlgorithm
19 {
20 public:
21 /**
22 * Encrypt or decrypt a message
23 * @param in the plaintext
24 * @param out the byte array to hold the output, i.e. the ciphertext
25 * @param len the length of both in and out in bytes
26 */
27 virtual void cipher(const byte in[], byte out[], size_t len) = 0;
28
29 /**
30 * Encrypt or decrypt a message
31 * @param buf the plaintext / ciphertext
32 * @param len the length of buf in bytes
33 */
34 void cipher1(byte buf[], size_t len)
35 { cipher(buf, buf, len); }
36
37 /**
38 * Resync the cipher using the IV
39 * @param iv the initialization vector
40 * @param iv_len the length of the IV in bytes
41 */
42 virtual void set_iv(const byte iv[], size_t iv_len);
43
44 /**
45 * @param iv_len the length of the IV in bytes
46 * @return if the length is valid for this algorithm
47 */
48 virtual bool valid_iv_length(size_t iv_len) const;
49
50 /**
51 * Get a new object representing the same algorithm as *this
52 */
53 virtual StreamCipher* clone() const = 0;
54 };
55
56 }
57
58 #endif
Botan::StreamCipher::cipher1
void cipher1(byte buf[], size_t len)
Definition: stream_cipher.h:34
Botan::byte
unsigned char byte
Definition: types.h:22
Botan::SymmetricAlgorithm
Definition: sym_algo.h:22
Botan::StreamCipher
Definition: stream_cipher.h:18
Botan
Definition: algo_base.h:14