aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/stream/stream_cipher.cpp
blob: 2f15389146ff8a007a67ffa9f8d00b0d7c46ff48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* Stream Ciphers
* (C) 2015 Jack Lloyd
*
* Botan is released under the Simplified BSD License (see license.txt)
*/

#include <botan/stream_cipher.h>
#include <botan/internal/stream_utils.h>

#if defined(BOTAN_HAS_CHACHA)
#include <botan/chacha.h>
#endif

#if defined(BOTAN_HAS_SALSA20)
#include <botan/salsa20.h>
#endif

#if defined(BOTAN_HAS_CTR_BE)
#include <botan/ctr.h>
#endif

#if defined(BOTAN_HAS_OFB)
#include <botan/ofb.h>
#endif

#if defined(BOTAN_HAS_RC4)
#include <botan/rc4.h>
#endif

namespace Botan {

StreamCipher::~StreamCipher() {}

void StreamCipher::set_iv(const byte[], size_t iv_len)
   {
   if(!valid_iv_length(iv_len))
      throw Invalid_IV_Length(name(), iv_len);
   }

#if defined(BOTAN_HAS_CHACHA)
BOTAN_REGISTER_STREAM_CIPHER_NOARGS(ChaCha);
#endif

#if defined(BOTAN_HAS_SALSA20)
BOTAN_REGISTER_STREAM_CIPHER_NOARGS(Salsa20);
#endif

#if defined(BOTAN_HAS_CTR_BE)
BOTAN_REGISTER_NAMED_T(StreamCipher, "CTR-BE", CTR_BE, CTR_BE::make);
#endif

#if defined(BOTAN_HAS_OFB)
BOTAN_REGISTER_NAMED_T(StreamCipher, "OFB", OFB, OFB::make);
#endif

#if defined(BOTAN_HAS_RC4)
BOTAN_REGISTER_NAMED_T(StreamCipher, "RC4", RC4, RC4::make);
#endif

}