SIde-Channel Analysis toolKit (SICAK)
Software toolkit for side-channel analysis
cpakeyeval.h
Go to the documentation of this file.
1 /*
2 * SICAK - SIde-Channel Analysis toolKit
3 * Copyright (C) 2018 Petr Socha, FIT, CTU in Prague
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18 
29 #ifndef CPAKEYEVAL_H
30 #define CPAKEYEVAL_H
31 
32 #include <QString>
33 #include "types_basic.hpp"
34 
42 class CpaKeyEval {
43 
44 public:
45 
46  virtual ~CpaKeyEval() {}
47 
49  virtual QString getPluginName() = 0;
51  virtual QString getPluginInfo() = 0;
52 
54  virtual void init(const char * param) = 0;
56  virtual void deInit() = 0;
57 
59  virtual Vector<uint8_t> evaluateKeyCandidates(const VectorType<size_t> & keyCandidates) = 0;
60 
61 };
62 
63 #define CpaKeyEval_iid "cz.cvut.fit.Sicak.CpaKeyEvalInterface/1.0"
64 
65 Q_DECLARE_INTERFACE(CpaKeyEval, CpaKeyEval_iid)
66 
67 
68 #endif /* CPAKEYEVAL_H */
CPA keyguess evaluation QT plugin interface.
Definition: cpakeyeval.h:42
virtual void init(const char *param)=0
Initialize the plugin.
virtual QString getPluginInfo()=0
Plugin info.
virtual Vector< uint8_t > evaluateKeyCandidates(const VectorType< size_t > &keyCandidates)=0
Evaluates the keyguess (e.g. maximum key candidate correlation traces) and returns the cipher key.
This header file contains class templates of basic data containers.
virtual QString getPluginName()=0
Plugin name.
An abstract class, representing all the vector-like data types.
Definition: types_basic.hpp:100
virtual void deInit()=0
Deinitialize the plugin.