RSA
Référence du fichier menu.c

Contient des fonctions et permettant de générer et afficher les menus. Plus de détails...

#include <stdio.h>
#include <stdlib.h>
#include "pointeurs.h"
#include "menu.h"
#include <sys/types.h>
#include <dirent.h>
#include <string.h>

Fonctions

void menuprincipal ()
 Affiche le menu principal dans la console.
 
void menugeneration ()
 Affiche le menu de génération de clef dans la console, et enregistre les clefs dans leurs dossiers repectifs. Plus de détails...
 
int fichierClef (GRDNB *a, GRDNB *b, int mode, char *fichier)
 Ecrit/Lit sur une ligne deux grands nombres séparés par un espace. Plus de détails...
 
char * listeClefs (char *nomduDossier)
 Affiche un menu ergonomique pour sélectionner une clef dans un répertoire donné. Plus de détails...
 
void menuchiffrement ()
 Permet de chiffrer, signer ou de signer puis chiffrer un document. Plus de détails...
 
void menudechiffrement ()
 Permet de dechiffrer, vérifier la signature ou de dechiffrer puis verifier la signature d'un document. Plus de détails...
 

Description détaillée

Contient des fonctions et permettant de générer et afficher les menus.

Auteur
I. Laruelle / A. Masciulli - UTT NF05 A18

Documentation des fonctions

◆ fichierClef()

int fichierClef ( GRDNB a,
GRDNB b,
int  mode,
char *  fichier 
)

Ecrit/Lit sur une ligne deux grands nombres séparés par un espace.

Paramètres
[in,out]aPointeur sur un GRDNB
[in,out]bPointeur sur un GRDNB
[in]modeSi mode = 1, écriture de a et b.
Si mode = 0, lecture dans a et b.
[in]fichierChemin d'accès relatif ou absolu du fichier accessible en lecture ou écriture le cas échéant.
Avertissement
En lecture, les clefs doivent être écrites dans le fichier en base 2.
Renvoie
0 si l'opération s'est bien déroulée
1 sinon.

En mode écriture, on convertit les GRDNB en chaine et on écrit sur une seule ligne les chaines séparées par un espace.

En mode lecture, on essaye de récupérer les deux chaines, et on les convertit en GRDNB si tout se passe bien.

◆ listeClefs()

char* listeClefs ( char *  nomduDossier)

Affiche un menu ergonomique pour sélectionner une clef dans un répertoire donné.

Paramètres
[in]Chainede caractère contenant le chemin d'accès relatif ou absolu du répertoire, accessible en lecture
Renvoie
La chaine de caractère comprenant le chemin d'accès relatif ou absolu à la clef selectionnée par l'utilisateur, ou NULL s'il n'y pas de clef.
Avertissement
Les clefs doivent avoir l'extension .key pour être affichées dans le menu.

On ouvre le dossier, on ajoute le nom des fichiers finissant par .key dans un tableau, puis l'utilisateur choisit la clef voulue.

◆ menuchiffrement()

void menuchiffrement ( )

Permet de chiffrer, signer ou de signer puis chiffrer un document.

Avertissement
Dans le cadre de la signature couplée au chiffrement, le fichier "tmp.tmp" du répertoire d'exécution sera créé ou écrasé puis effacé.

Affiche le menu de chiffrement et lance les fonctions correspondantes.

◆ menudechiffrement()

void menudechiffrement ( )

Permet de dechiffrer, vérifier la signature ou de dechiffrer puis verifier la signature d'un document.

Avertissement
Dans le cadre du double déchiffrement, le fichier "tmp.tmp" du répertoire d'exécution sera créé ou écrasé puis effacé.

Affiche le menu de déchiffrement et lance les fonctions correspondantes.

◆ menugeneration()

void menugeneration ( )

Affiche le menu de génération de clef dans la console, et enregistre les clefs dans leurs dossiers repectifs.

Avertissement
La fonction srand() doit avoir été appellée auparavant.
Note
Les clefs seront écrites sous la forme "n exposant" sur la même ligne d'un fichier en base 2.

Les clefs seront enregistrées dans les dossiers public_keys et private_keys du répertoire d'exécution.