File indexing completed on 2024-04-14 05:43:30
0001 /* 0002 SPDX-FileCopyrightText: 2012-2022 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "kgpgsigntext.h" 0007 0008 #include "kgpgsettings.h" 0009 0010 KGpgSignText::KGpgSignText(QObject *parent, const QString &signId, const QString &text, const SignOptions &options, const QStringList &extraOptions) 0011 : KGpgTextOrFileTransaction(parent, text), 0012 m_fileIndex(-1), 0013 m_options(options), 0014 m_signId(signId), 0015 m_extraOptions(extraOptions) 0016 { 0017 } 0018 0019 KGpgSignText::KGpgSignText(QObject *parent, const QString &signId, const QList<QUrl> &files, const SignOptions &options, const QStringList &extraOptions) 0020 : KGpgTextOrFileTransaction(parent, files), 0021 m_fileIndex(0), 0022 m_options(options), 0023 m_signId(signId), 0024 m_extraOptions(extraOptions) 0025 { 0026 /* GnuPG can only handle one file at a time when signing */ 0027 Q_ASSERT(files.count() == 1); 0028 } 0029 0030 QStringList 0031 KGpgSignText::command() const 0032 { 0033 QStringList ret = m_extraOptions; 0034 0035 const QList<QUrl> &files = getInputFiles(); 0036 QString fileName; 0037 0038 if (!files.isEmpty()) 0039 fileName = files.first().path(); 0040 0041 ret << QLatin1String("-u") << m_signId; 0042 0043 if (m_options & AsciiArmored) { 0044 if (fileName.isEmpty()) 0045 ret << QLatin1String("--clearsign"); 0046 else 0047 ret << QLatin1String("--armor"); 0048 } 0049 if (KGpgSettings::pgpCompatibility()) 0050 ret << QLatin1String("--pgp6"); 0051 0052 if (!fileName.isEmpty()) { 0053 if (m_options & DetachedSignature) 0054 ret << QLatin1String("--detach-sign") << 0055 QLatin1String("--output") << fileName + QLatin1String(".sig"); 0056 } 0057 0058 return ret; 0059 } 0060 0061 QStringList 0062 KGpgSignText::signedText() const 0063 { 0064 QStringList result; 0065 0066 for (const QString &line : getMessages()) 0067 if (!line.startsWith(QLatin1String("[GNUPG:] "))) { 0068 result.append(line); 0069 } 0070 0071 return result; 0072 }