File indexing completed on 2025-05-04 04:59:03
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "checksignature.h" 0008 0009 #include <QCommandLineParser> 0010 #include <QCoreApplication> 0011 #include <QDebug> 0012 #include <QFile> 0013 #include <QStandardPaths> 0014 0015 CheckSignature::CheckSignature(const QString &fileName, QObject *parent) 0016 : QObject(parent) 0017 { 0018 mQcaInitializer = new QCA::Initializer(QCA::Practical, 64); 0019 auto job = new MessageViewer::DKIMCheckSignatureJob(this); 0020 connect(job, &MessageViewer::DKIMCheckSignatureJob::result, this, &CheckSignature::slotResult); 0021 0022 auto msg = new KMime::Message; 0023 QFile file(fileName); 0024 if (file.open(QIODevice::ReadOnly)) { 0025 msg->setContent(file.readAll()); 0026 } else { 0027 qWarning() << "Couldn't read" << fileName; 0028 } 0029 msg->parse(); 0030 job->setMessage(KMime::Message::Ptr(msg)); 0031 job->start(); 0032 } 0033 0034 CheckSignature::~CheckSignature() 0035 { 0036 delete mQcaInitializer; 0037 } 0038 0039 void CheckSignature::slotResult(const MessageViewer::DKIMCheckSignatureJob::CheckSignatureResult &checkResult) 0040 { 0041 qDebug() << "result : status " << checkResult.status << " error : " << checkResult.error << " warning " << checkResult.warning; 0042 } 0043 0044 int main(int argc, char **argv) 0045 { 0046 QCoreApplication app(argc, argv); 0047 QStandardPaths::setTestModeEnabled(true); 0048 QCommandLineParser parser; 0049 parser.addVersionOption(); 0050 parser.addHelpOption(); 0051 parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("+[file]"), QStringLiteral("File containing an email"))); 0052 0053 parser.process(app); 0054 0055 QString filename; 0056 if (!parser.positionalArguments().isEmpty()) { 0057 filename = parser.positionalArguments().at(0); 0058 } 0059 (void)new CheckSignature(filename); 0060 0061 app.exec(); 0062 return 0; 0063 } 0064 0065 #include "moc_checksignature.cpp"