blob: 9c26a10c4ea25edbdb35eab52c0d581e66b46d3f [file] [log] [blame]
Paul Bakker8123e9d2011-01-06 15:37:30 +00001/**
2 * \file cipher_wrap.h
3 *
4 * \brief Cipher wrappers.
5 *
6 * \author Adriaan de Jong <dejong@fox-it.com>
7 *
Paul Bakker68884e32013-01-07 18:20:04 +01008 * Copyright (C) 2006-2013, Brainspark B.V.
Paul Bakker8123e9d2011-01-06 15:37:30 +00009 *
10 * This file is part of PolarSSL (http://www.polarssl.org)
11 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
12 *
13 * All rights reserved.
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
28 */
Paul Bakkercce9d772011-11-18 14:26:47 +000029#ifndef POLARSSL_CIPHER_WRAP_H
30#define POLARSSL_CIPHER_WRAP_H
Paul Bakker8123e9d2011-01-06 15:37:30 +000031
Paul Bakker314052f2011-08-15 09:07:52 +000032#include "config.h"
33#include "cipher.h"
Paul Bakker8123e9d2011-01-06 15:37:30 +000034
Paul Bakker8123e9d2011-01-06 15:37:30 +000035#ifdef __cplusplus
36extern "C" {
37#endif
38
39#if defined(POLARSSL_AES_C)
40
Paul Bakker5e0efa72013-09-08 23:04:04 +020041extern const cipher_info_t aes_128_ecb_info;
42extern const cipher_info_t aes_192_ecb_info;
43extern const cipher_info_t aes_256_ecb_info;
44
Paul Bakker8123e9d2011-01-06 15:37:30 +000045extern const cipher_info_t aes_128_cbc_info;
46extern const cipher_info_t aes_192_cbc_info;
47extern const cipher_info_t aes_256_cbc_info;
48
Paul Bakker343a8702011-06-09 14:27:58 +000049#if defined(POLARSSL_CIPHER_MODE_CFB)
50extern const cipher_info_t aes_128_cfb128_info;
51extern const cipher_info_t aes_192_cfb128_info;
52extern const cipher_info_t aes_256_cfb128_info;
53#endif /* POLARSSL_CIPHER_MODE_CFB */
54
55#if defined(POLARSSL_CIPHER_MODE_CTR)
56extern const cipher_info_t aes_128_ctr_info;
57extern const cipher_info_t aes_192_ctr_info;
58extern const cipher_info_t aes_256_ctr_info;
59#endif /* POLARSSL_CIPHER_MODE_CTR */
60
Paul Bakker68884e32013-01-07 18:20:04 +010061#if defined(POLARSSL_GCM_C)
62extern const cipher_info_t aes_128_gcm_info;
Manuel Pégourié-Gonnard83f3fc02013-09-04 12:07:24 +020063extern const cipher_info_t aes_192_gcm_info;
Paul Bakker68884e32013-01-07 18:20:04 +010064extern const cipher_info_t aes_256_gcm_info;
65#endif /* POLARSSL_GCM_C */
66
Paul Bakker8123e9d2011-01-06 15:37:30 +000067#endif /* defined(POLARSSL_AES_C) */
68
69#if defined(POLARSSL_CAMELLIA_C)
70
Paul Bakker5e0efa72013-09-08 23:04:04 +020071extern const cipher_info_t camellia_128_ecb_info;
72extern const cipher_info_t camellia_192_ecb_info;
73extern const cipher_info_t camellia_256_ecb_info;
74
Paul Bakker8123e9d2011-01-06 15:37:30 +000075extern const cipher_info_t camellia_128_cbc_info;
76extern const cipher_info_t camellia_192_cbc_info;
77extern const cipher_info_t camellia_256_cbc_info;
78
Paul Bakker343a8702011-06-09 14:27:58 +000079#if defined(POLARSSL_CIPHER_MODE_CFB)
80extern const cipher_info_t camellia_128_cfb128_info;
81extern const cipher_info_t camellia_192_cfb128_info;
82extern const cipher_info_t camellia_256_cfb128_info;
83#endif /* POLARSSL_CIPHER_MODE_CFB */
84
85#if defined(POLARSSL_CIPHER_MODE_CTR)
86extern const cipher_info_t camellia_128_ctr_info;
87extern const cipher_info_t camellia_192_ctr_info;
88extern const cipher_info_t camellia_256_ctr_info;
89#endif /* POLARSSL_CIPHER_MODE_CTR */
90
Paul Bakker8123e9d2011-01-06 15:37:30 +000091#endif /* defined(POLARSSL_CAMELLIA_C) */
92
93#if defined(POLARSSL_DES_C)
94
Paul Bakker5e0efa72013-09-08 23:04:04 +020095extern const cipher_info_t des_ecb_info;
96extern const cipher_info_t des_ede_ecb_info;
97extern const cipher_info_t des_ede3_ecb_info;
98
Paul Bakker8123e9d2011-01-06 15:37:30 +000099extern const cipher_info_t des_cbc_info;
100extern const cipher_info_t des_ede_cbc_info;
101extern const cipher_info_t des_ede3_cbc_info;
102
103#endif /* defined(POLARSSL_DES_C) */
104
Paul Bakker6132d0a2012-07-04 17:10:40 +0000105#if defined(POLARSSL_BLOWFISH_C)
Paul Bakker5e0efa72013-09-08 23:04:04 +0200106extern const cipher_info_t blowfish_ecb_info;
Paul Bakker6132d0a2012-07-04 17:10:40 +0000107extern const cipher_info_t blowfish_cbc_info;
108
109#if defined(POLARSSL_CIPHER_MODE_CFB)
110extern const cipher_info_t blowfish_cfb64_info;
111#endif /* POLARSSL_CIPHER_MODE_CFB */
112
113#if defined(POLARSSL_CIPHER_MODE_CTR)
114extern const cipher_info_t blowfish_ctr_info;
115#endif /* POLARSSL_CIPHER_MODE_CTR */
116#endif /* defined(POLARSSL_BLOWFISH_C) */
117
Paul Bakker68884e32013-01-07 18:20:04 +0100118#if defined(POLARSSL_ARC4_C)
119extern const cipher_info_t arc4_128_info;
120#endif /* defined(POLARSSL_ARC4_C) */
121
Paul Bakkerfab5c822012-02-06 16:45:10 +0000122#if defined(POLARSSL_CIPHER_NULL_CIPHER)
123extern const cipher_info_t null_cipher_info;
124#endif /* defined(POLARSSL_CIPHER_NULL_CIPHER) */
125
Paul Bakker8123e9d2011-01-06 15:37:30 +0000126#ifdef __cplusplus
127}
128#endif
129
130#endif /* POLARSSL_CIPHER_WRAP_H */