AnCH Framework 0.1
Another C++ Hack Framework
Loading...
Searching...
No Matches
aes128.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2012 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include "crypto/cipher/aes.hpp"
23
24#include "crypto/cipher/ecb.hpp"
25#include "crypto/cipher/cbc.hpp"
26#include "crypto/cipher/pcbc.hpp"
27#include "crypto/cipher/cfb.hpp"
28#include "crypto/cipher/ofb.hpp"
29#include "crypto/cipher/ctr.hpp"
30
31#include "crypto/padding/ansiX923.hpp"
32#include "crypto/padding/iso7816_4Padding.hpp"
33#include "crypto/padding/pkcs5Padding.hpp"
34#include "crypto/padding/zeroPadding.hpp"
35
36namespace anch {
37 namespace crypto {
38
39 extern template class BlockCipher<16>;
40 extern template class AES<4,10>;
45
50 extern template class ECB<AES128,ZeroPadding>;
52 extern template class ECB<AES128,ANSIX923>;
54 extern template class ECB<AES128,ISO7816_4Padding>;
56 extern template class ECB<AES128,PKCS5Padding>;
57
59 extern template class CBC<AES128,ZeroPadding>;
61 extern template class CBC<AES128,ANSIX923>;
63 extern template class CBC<AES128,ISO7816_4Padding>;
65 extern template class CBC<AES128,PKCS5Padding>;
66
68 extern template class PCBC<AES128,ZeroPadding>;
70 extern template class PCBC<AES128,ANSIX923>;
72 extern template class PCBC<AES128,ISO7816_4Padding>;
74 extern template class PCBC<AES128,PKCS5Padding>;
75
77 extern template class CFB<AES128>;
78
80 extern template class OFB<AES128>;
81
83 extern template class CTR<AES128>;
84
85 }
86}
AES block cipher algorithm implementation.
Definition aes.hpp:67
Block cipher interface.
Definition blockCipher.hpp:58
Block cipher mode of operation interface.
Definition bcModOp.hpp:48
Cipher-block chaining implementation.
Definition cbc.hpp:37
Cipher feedback implementation.
Definition cfb.hpp:37
Counter implementation.
Definition ctr.hpp:37
Electronic codebook implementation.
Definition ecb.hpp:38
Output feedback implementation.
Definition ofb.hpp:37
Propagating cipher-block chaining implementation.
Definition pcbc.hpp:40
Cryptography namespace.
Definition base64.hpp:28
AES< 4, 10 > AES128
Definition aes128.hpp:44
AnCH framework base namespace.
Definition app.hpp:28