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
}
|