2014-09-29 15:13:10 +06:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2003-2008 Justin Karneges <justin@affinix.com>
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "gpgop.h"
|
|
|
|
#include "qcaprovider.h"
|
|
|
|
|
|
|
|
namespace gpgQCAPlugin {
|
|
|
|
|
|
|
|
class MyOpenPGPContext;
|
|
|
|
|
|
|
|
class MyMessageContext : public QCA::MessageContext
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
MyOpenPGPContext *sms;
|
|
|
|
|
|
|
|
QString signerId;
|
|
|
|
QStringList recipIds;
|
|
|
|
QCA::MessageContext::Operation op;
|
|
|
|
QCA::SecureMessage::SignMode signMode;
|
|
|
|
QCA::SecureMessage::Format format;
|
|
|
|
QByteArray in, out, sig;
|
|
|
|
int wrote;
|
|
|
|
bool ok, wasSigned;
|
|
|
|
GpgOp::Error op_err;
|
|
|
|
QCA::SecureMessageSignature signer;
|
|
|
|
GpgOp gpg;
|
|
|
|
bool _finished;
|
|
|
|
QString dtext;
|
|
|
|
|
|
|
|
QCA::PasswordAsker asker;
|
|
|
|
QCA::TokenAsker tokenAsker;
|
|
|
|
|
|
|
|
MyMessageContext(MyOpenPGPContext *_sms, QCA::Provider *p);
|
|
|
|
|
|
|
|
// reimplemented Provider::Context
|
2020-01-19 16:28:44 +01:00
|
|
|
QCA::Provider::Context *clone() const override;
|
2014-09-29 15:13:10 +06:00
|
|
|
|
|
|
|
// reimplemented MessageContext
|
2020-01-19 16:28:44 +01:00
|
|
|
bool canSignMultiple() const override;
|
|
|
|
QCA::SecureMessage::Type type() const override;
|
|
|
|
void reset() override;
|
|
|
|
void setupEncrypt(const QCA::SecureMessageKeyList &keys) override;
|
|
|
|
void setupSign(const QCA::SecureMessageKeyList &keys, QCA::SecureMessage::SignMode m, bool, bool) override;
|
|
|
|
void setupVerify(const QByteArray &detachedSig) override;
|
|
|
|
void start(QCA::SecureMessage::Format f, QCA::MessageContext::Operation op) override;
|
|
|
|
void update(const QByteArray &in) override;
|
|
|
|
QByteArray read() override;
|
|
|
|
int written() override;
|
|
|
|
void end() override;
|
|
|
|
bool finished() const override;
|
|
|
|
bool waitForFinished(int msecs) override;
|
|
|
|
bool success() const override;
|
|
|
|
QCA::SecureMessage::Error errorCode() const override;
|
|
|
|
QByteArray signature() const override;
|
|
|
|
QString hashName() const override;
|
|
|
|
QCA::SecureMessageSignatureList signers() const override;
|
|
|
|
QString diagnosticText() const override;
|
2014-09-29 15:13:10 +06:00
|
|
|
|
|
|
|
void seterror();
|
|
|
|
void complete();
|
|
|
|
|
2020-01-22 19:31:28 +01:00
|
|
|
private Q_SLOTS:
|
2014-09-29 15:13:10 +06:00
|
|
|
void gpg_readyRead();
|
|
|
|
void gpg_bytesWritten(int bytes);
|
|
|
|
void gpg_finished();
|
|
|
|
void gpg_needPassphrase(const QString &in_keyId);
|
|
|
|
void gpg_needCard();
|
|
|
|
void gpg_readyReadDiagnosticText();
|
|
|
|
void asker_responseReady();
|
|
|
|
void tokenAsker_responseReady();
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace gpgQCAPlugin
|