AnCH Framework 0.1
Another C++ Hack Framework
 
Loading...
Searching...
No Matches
blockCipher.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 <stdint.h>
23#include <cstddef>
24#include <array>
25
26
27namespace anch {
28 namespace crypto {
29
31 extern const uint8_t ANCH_GALOIS_MULT2[256];
32
34 extern const uint8_t ANCH_GALOIS_MULT3[256];
35
37 extern const uint8_t ANCH_GALOIS_MULT9[256];
38
40 extern const uint8_t ANCH_GALOIS_MULT11[256];
41
43 extern const uint8_t ANCH_GALOIS_MULT13[256];
44
46 extern const uint8_t ANCH_GALOIS_MULT14[256];
47
57 template<std::size_t B>
59
60 // Methods +
61 public:
68 virtual void cipher(const std::array<uint8_t,B>& input, std::array<uint8_t,B>& output) = 0;
69
76 virtual void decipher(const std::array<uint8_t,B>& input, std::array<uint8_t,B>& output) = 0;
77
83 constexpr inline static std::size_t getBlockSize() {
84 return B;
85 }
86 // Methods -
87
88 };
89
90 }
91}
Block cipher interface.
Definition blockCipher.hpp:58
virtual void cipher(const std::array< uint8_t, B > &input, std::array< uint8_t, B > &output)=0
static constexpr std::size_t getBlockSize()
Definition blockCipher.hpp:83
virtual void decipher(const std::array< uint8_t, B > &input, std::array< uint8_t, B > &output)=0
Cryptography namespace.
Definition base64.hpp:28
const uint8_t ANCH_GALOIS_MULT11[256]
const uint8_t ANCH_GALOIS_MULT9[256]
const uint8_t ANCH_GALOIS_MULT3[256]
const uint8_t ANCH_GALOIS_MULT14[256]
const uint8_t ANCH_GALOIS_MULT13[256]
const uint8_t ANCH_GALOIS_MULT2[256]
AnCH framework base namespace.
Definition app.hpp:28