proprocessor cryptopp

This commit is contained in:
Aurélie Delhaie
2022-03-01 21:43:21 +01:00
parent 64d216fcf2
commit 926edc5e6d
9 changed files with 56 additions and 23 deletions

View File

@@ -4,25 +4,33 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
win32:VERSION = 1.1.1.0 # major.minor.patch.build
else:VERSION = 1.1.1 # major.minor.patch
DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\"
DEFINES += APP_NAME=\"\\\"TaskNote\\\"\"
# remove possible other optimization flags
win32 {
message("Build for Windows")
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE *= -O2
DEFINES += APP_OS=\"\\\"Windows\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(wmic os get version /value)\\\"\"
equals(QMAKE_TARGET.arch, arm64) {
message("CPU Architecture : aarch64")
# Add specific arm stuff here
DEFINES += APP_ARCH=\"\\\"arm64\\\"\"
}
equals(QMAKE_TARGET.arch, x86_64) {
message("CPU Architecture : x64")
QMAKE_CXXFLAGS_RELEASE += -favor:INTEL64
DEFINES += APP_ARCH=\"\\\"x64\\\"\"
}
RC_ICONS = icon.ico
VERSION = 1.2.0.0
QMAKE_TARGET_COMPANY = "Aurelie Delhaie"
QMAKE_TARGET_PRODUCT = "TaskNote"
QMAKE_TARGET_DESCRIPTION = "TaskNote"
QMAKE_TARGET_DESCRIPTION = "Simple note-taking workbook"
}
macx {
@@ -33,22 +41,27 @@ macx {
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE *= -O3
DEFINES += APP_OS=\"\\\"macOS\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\"
equals(QMAKE_APPLE_DEVICE_ARCHS, arm64) {
message("CPU Architecture : aarch64")
DEFINES += APP_ARCH=\"\\\"aarch64\\\"\"
QMAKE_CXXFLAGS_RELEASE += -mcpu=apple-a14
}
VERSION = 1.2.0
}
linux-g++* {
message("Build for Linux")
LIBS += -L/usr/lib/crypto++ -lcrypto++
INCS += -I/usr/include/crypto++
#LIBS += -L/usr/lib/crypto++ -lcrypto++
#INCS += -I/usr/include/crypto++
#DEFINES += __SECURED=1
DEFINES += APP_OS=\"\\\"$$system(cat /etc/issue | cut -d\' \' -f1)\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\"
DEFINES += APP_ARCH=\"\\\"amd64\\\"\"
QMAKE_CXXFLAGS_RELEASE *= -O3
QMAKE_CXXFLAGS_RELEASE += -march=skylake
VERSION = 1.2.0
}
# You can make your code fail to compile if it uses deprecated APIs.

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2022-02-08T17:57:00. -->
<!-- Written by QtCreator 6.0.2, 2022-03-01T21:27:21. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{23c6a5b6-2840-4c04-84d4-91387dc9bb9f}</value>
<value type="QByteArray">{dbe9fba1-e5a9-4d98-85bf-f46da0900eba}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -142,7 +142,7 @@
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
@@ -183,7 +183,7 @@
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
@@ -238,14 +238,12 @@
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/aurelie/src/TaskNote/TaskNote.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/aurelie/src/TaskNote/TaskNote.pro</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/aurelie/src/build-TaskNote-Desktop_Qt_6_2_3_GCC_64bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>

View File

@@ -6,7 +6,8 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui(new Ui::AboutDialog)
{
ui->setupUi(this);
ui->appNameLabel->setText(QString("TaskNote (%1)").arg(QSysInfo::currentCpuArchitecture()));
ui->appNameLabel->setText(QString("%1 (%2)").arg(APP_NAME, APP_ARCH));
ui->versionLabel->setText(QString("Version %1").arg(APP_VERSION));
}
AboutDialog::~AboutDialog()

View File

@@ -69,7 +69,7 @@
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<widget class="QLabel" name="versionLabel">
<property name="text">
<string>Version 1.2.0.0</string>
</property>

View File

@@ -14,7 +14,9 @@ MainWindow::MainWindow(QWidget *parent)
connect(ui->noteList, &QListWidget::currentRowChanged, this, &MainWindow::selectionChanged);
connect(ui->titleEdit, &QLineEdit::textChanged, this, &MainWindow::titleChanged);
connect(ui->contentEdit, &QPlainTextEdit::textChanged, this, &MainWindow::contentChanged);
#ifdef __SECURED
connect(ui->actionEncrypt, &QAction::triggered, this, &MainWindow::encryptNote);
#endif
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);
ui->contentEdit->setFont(fixedFont);
this->savemng = new SaveManager();
@@ -56,12 +58,16 @@ void MainWindow::selectionChanged(int i)
ui->titleEdit->setDisabled(false);
ui->contentEdit->setDisabled(false);
ui->titleEdit->setText(n->getTitle());
#ifdef __SECURED
if (n->isEncrypted())
{
ui->contentEdit->setPlainText(n->getEncryptedContent("azertyuiop"));
} else {
ui->contentEdit->setPlainText(n->getContent());
}
#else
ui->contentEdit->setPlainText(n->getContent());
#endif
ui->markdownViewer->setMarkdown(ui->contentEdit->toPlainText());
}
@@ -107,6 +113,7 @@ void MainWindow::showAboutBox()
dialog.exec();
}
#ifdef __SECURED
void MainWindow::encryptNote()
{
if (this->currentIndex > -1)
@@ -116,6 +123,7 @@ void MainWindow::encryptNote()
savemng->flushSave();
}
}
#endif
void MainWindow::contentChanged()
{

View File

@@ -30,7 +30,9 @@ private slots:
void contentChanged();
void titleChanged();
void showAboutBox();
#ifdef __SECURED
void encryptNote();
#endif
private:
Ui::MainWindow *ui;

View File

@@ -222,6 +222,9 @@
</property>
</action>
<action name="actionEncrypt">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="../../icons.qrc">
<normaloff>:/icon/resources/outline_shield_black_48dp.png</normaloff>:/icon/resources/outline_shield_black_48dp.png</iconset>

View File

@@ -12,7 +12,9 @@ QJsonObject Note::toJson()
o["uuid"] = this->uuid;
o["title"] = this->title;
o["content"] = this->content;
#ifdef __SECURED
o["encrypted"] = this->encrypted;
#endif
return o;
}
@@ -44,7 +46,7 @@ QString Note::getContent()
}
return "";
}
#ifdef __SECURED
QString Note::getEncryptedContent(QString passwd)
{
if (this->encrypted)
@@ -80,7 +82,7 @@ bool Note::isEncrypted()
{
return this->encrypted;
}
#endif
void Note::setTitle(QString value)
{
this->title = value;
@@ -92,7 +94,7 @@ void Note::setContent(QString value)
this->content = value;
}
}
#ifdef __SECURED
// TODO encrypt avec le mot de passe
bool Note::setEncryptedContent(QString value, QString passwd)
{
@@ -141,4 +143,4 @@ void Note::encrypt(QString password)
}
}
}
#endif

View File

@@ -11,6 +11,7 @@
#include <QUuid>
#include <QMessageBox>
#ifdef __SECURED
#include <crypto++/modes.h>
#include <crypto++/aes.h>
#include <crypto++/filters.h>
@@ -20,6 +21,7 @@
#include <crypto++/osrng.h>
#include <crypto++/gcm.h>
#include <crypto++/rijndael.h>
#endif
class Note
{
@@ -32,15 +34,19 @@ public:
QString getUuid();
QString getTitle();
QString getContent();
#ifdef __SECURED
QString getEncryptedContent(QString passwd);
bool isEncrypted();
#endif
void setTitle(QString value);
void setContent(QString value);
#ifdef __SECURED
bool setEncryptedContent(QString value, QString passwd);
void encrypt(QString password);
#endif
private:
QString uuid;
QString title;