1/* ====================================================================
2 * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
3 *
4 * Rights for redistribution and usage in source and binary
5 * forms are granted according to the OpenSSL license.
6 */
7
8#include <stddef.h>
9
10typedef void (*block128_f)(const unsigned char in[16],
11			unsigned char out[16],
12			const void *key);
13
14typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out,
15			size_t len, const void *key,
16			unsigned char ivec[16], int enc);
17
18void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,
19			size_t len, const void *key,
20			unsigned char ivec[16], block128_f block);
21void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
22			size_t len, const void *key,
23			unsigned char ivec[16], block128_f block);
24
25void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,
26			size_t len, const void *key,
27			unsigned char ivec[16], unsigned char ecount_buf[16],
28			unsigned int *num, block128_f block);
29
30void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
31			size_t len, const void *key,
32			unsigned char ivec[16], int *num,
33			block128_f block);
34
35void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
36			size_t len, const void *key,
37			unsigned char ivec[16], int *num,
38			int enc, block128_f block);
39void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
40			size_t length, const void *key,
41			unsigned char ivec[16], int *num,
42			int enc, block128_f block);
43void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
44			size_t bits, const void *key,
45			unsigned char ivec[16], int *num,
46			int enc, block128_f block);
47
48size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out,
49			size_t len, const void *key,
50			unsigned char ivec[16], block128_f block);
51size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
52			size_t len, const void *key,
53			unsigned char ivec[16], cbc128_f cbc);
54size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out,
55			size_t len, const void *key,
56			unsigned char ivec[16], block128_f block);
57size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
58			size_t len, const void *key,
59			unsigned char ivec[16], cbc128_f cbc);
60