Bonjour ou bonsoir,
Voilà dans le cadre de mes études je dois élaborer une calculette cryptographique, c'est-à-dire mise en place d'algorithme de (dé)chiffrement, algorithme de (vérification de) signature, ... Il nous ait aussi demandé de réaliser une interface graphique chose qui est faite.
Je souhaiterais "blinder" le contrôle des entrées utilisateurs. Je fonctionne essentiellement avec des fichiers pour lesquels j'ai crée des extensions spéciales (.puKey pour les fichiers contenant les clés publiques | .prKey pour les clés privées).
Donc actuellement je me retrouve avec un QPushButton qui, quand on clique dessus, ouvre un QFileDialog. Une fois un fichier sélectionné, on remplit un QLineEdit avec le chemin du fichier précédemment sélectionné. Lorsque l'on valide le formulaire je met en place des expressions régulière afin de contrôler que l'utilisateur à bien choisi un fichier .puKey quand il doit choisir une clé publique. Seulement ma QRegExp ne fonctionne pas et je ne vois pas pourquoi c'est pourquoi je demande votre aide
Ainsi avec l'expression régulière que j'ai exécuté, je m'attend à ce qu'elle accepte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 labelPrKey = new QLabel("Choose the file which contain the private key (*.prKey) :", this); lePrKey = new QLineEdit(this); buttonBrowsePrKey = new QPushButton("Browse", this); QObject::connect(buttonBrowsePrKey, SIGNAL(clicked()), fdPrKey, SLOT(exec())); QObject::connect(fdPrKey, SIGNAL(fileSelected(QString)), lePrKey, SLOT(setText(QString))); void Sign::computeRSA(){ QRegExp *rePrivateKey = new QRegExp("^[\w|/]+\.(prKey)$"); if(rePrivateKey->exactMatch(lePrKey->text())){ RSA *rsa = new RSA(); rsa->sign(leHash->text().toLocal8Bit().constData(), lePrKey->text().toLocal8Bit().constData(), leFileNameSign->text().toLocal8Bit().constData()); } else{ QMessageBox *mbFileNameSign = new QMessageBox(this); mbFileNameSign->setText("Le format du nom du fichier de la signature est invalide !"); mbFileNameSign->exec(); } }
- /home/bidon/clePrive.prKey
- clePrivee.prKey
mais qu'elle refuse tous fichiers dont l'extension est différent de .prKey.
Or jusqu'à présent, elle me refuse les entrées du style
/home/nosgiliath/Documents/M2/DLC/dlc_calculette_crypto/ressources/prRSAKey.prKey
Afin de vous économisez, je me suis déjà rendu sur le tutoriel que vous mettez à disposition concernant les expressions régulières tutoriel QRegExp.
Je vous remercie, pour l'attention que vous porterez à mon poste et me tiens à votre disposition pour des éventuelles précision.
Partager