-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadfgvx.h
84 lines (72 loc) · 1.97 KB
/
adfgvx.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
77
78
79
80
81
82
83
84
//
// Created by Lorenzo Cardinali on 16/09/2021.
//
#ifndef LORENZOCARDINALI105789_ADFGVX_H
#define LORENZOCARDINALI105789_ADFGVX_H
#include "bytelib.h"
/**
* Definizione truttura dati della chiave di criptazione.
*/
typedef struct struct_key {
/**
* Array che definisce una permutazione da 16 elementi (colonne).
*/
byte C[16];
/**
* Array che definisce una permutazione da 16 elementi (righe).
*/
byte R[16];
/**
* Array che definisce una permutazione da 256 elementi (matrice).
*/
byte K[16][16];
} t_key;
/**
* Definizione struttura dati che descrive la posizione di un byte.
*/
typedef struct struct_pos {
/**
* Byte della posizione.
*/
byte b;
/**
* Numero byte.
*/
int k;
/**
* Posizione byte.
*/
int i;
int j;
} t_pos;
/**
* Codifica un file in input utilizzando una chiave.
* La codifica viene salvata in un secondo file di output.
*
* @param key_file chiave codifica
* @param input_file file di input
* @param output_file file di output
*/
void encode(char* key_file, char* input_file, char* output_file);
/**
* De-Codifica un file in input utilizzando una chiave.
* La de-codifica viene salvata in un secondo file di output.
*
* @param key_file chiave codifica
* @param input_file file di input
* @param output_file file di output
*/
void decode(char* key_file, char* input_file, char* output_file);
/**
* Genera una chiave di codifica che viene salvata in un file
*
* @param key_file file di output
* @param s1 parametro 1 per la generazione
* @param k1 parametro 2 per la generazione
* @param s2 parametro 3 per la generazione
* @param k2 parametro 4 per la generazione
* @param s3 parametro 5 per la generazione
* @param k3 parametro 6 per la generazione
*/
void genkey(char* key_file, char* s1, char* k1, char* s2, char* k2, char* s3, char* k3);
#endif //LORENZOCARDINALI105789_ADFGVX_H