-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPlayFairEncrypter.h
76 lines (60 loc) · 1.38 KB
/
PlayFairEncrypter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <vector>
#include <string>
#include "Encrypter.h"
using namespace std;
class PlayFairEncrypter final : public Encrypter {
const int KEY_SIZE_H = 16,
KEY_SIZE_V = 8;
const char slackChar = '-';
pfKeyType key;
vector<vector<int>> charMap;
/**
* @brief Places the input character at a random position in the key.
*
* @param ch
*/
void putInKey(char ch);
/**
* @brief Create a random key.
*
*/
void createKey();
/**
* @brief Indexex key on the basis of characters.
*
*/
void createCharMap();
/**
* @brief Initalize key.
*
*/
void initKey() ;
/**
* @brief Create a list of pairs according to the rules of play fair cipher.
*
* @param s string
* @return vector<pair<char, char>> vector of created pairs.
*/
vector<pair<char, char>> createPair(const string &s);
void displayKey();
void displayPairs(const string &s);
public :
/**
* @brief Construct a new Play Fair Encrypter object
*
*/
PlayFairEncrypter();
/**
* @brief Converts plain text to cipher
*
* @param s plain text
* @return cipher text
*/
string encrypt(const string &msg);
/**
* @brief Get the Key object
*
* @return pfKeyType
*/
pfKeyType getKey();
};