aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2008-08-07 01:52:14 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2008-08-07 01:52:14 +0000
commiteefb9e3898a530f206811a6b76def52324483301 (patch)
tree92f9454de9f4e7245eb1f850178120a20e04c4f0
parentrenamed program (diff)
downloadgpg4usb-eefb9e3898a530f206811a6b76def52324483301.tar.gz
gpg4usb-eefb9e3898a530f206811a6b76def52324483301.zip
deleted not needed files
git-svn-id: http://cpunk.de/svn/src/gpg4usb@106 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--2copyFrom/kgpgme-sample.cpp442
-rw-r--r--2copyFrom/kgpgme-sample.h85
-rw-r--r--winbuild/static-win.zipbin5016826 -> 0 bytes
3 files changed, 0 insertions, 527 deletions
diff --git a/2copyFrom/kgpgme-sample.cpp b/2copyFrom/kgpgme-sample.cpp
deleted file mode 100644
index 64dfcf7..0000000
--- a/2copyFrom/kgpgme-sample.cpp
+++ /dev/null
@@ -1,442 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006 by Petri Damsten *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program 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 General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-#include "kgpgme.h"
-
-#ifdef HAVE_LIBGPGME
-
-#include <kapplication.h>
-#include <kmessagebox.h>
-#include <kpassdlg.h>
-#include <kiconloader.h>
-#include <klistview.h>
-#include <kdebug.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qlabel.h>
-#include <klocale.h>
-#include <locale.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-// KGpgSelKey class based on class in KGpg with the same name
-
-class KGpgSelKey : public KDialogBase
-{
- private:
- KListView* keysListpr;
-
- public:
-
- KGpgSelKey(QWidget *parent, const char *name, QString preselected,
- const KGpgMe& gpg):
- KDialogBase( parent, name, true,i18n("Private Key List"),Ok | Cancel) {
- QString keyname;
- QVBoxLayout* vbox;
- QWidget* page = new QWidget(this);
- QLabel* labeltxt;
- KIconLoader* loader = KGlobal::iconLoader();
- QPixmap keyPair = loader->loadIcon("kgpg_key2", KIcon::Small, 20);
-
- setMinimumSize(350,100);
- keysListpr = new KListView(page);
- keysListpr->setRootIsDecorated(true);
- keysListpr->addColumn(i18n("Name"));
- keysListpr->addColumn(i18n("Email"));
- keysListpr->addColumn(i18n("ID"));
- keysListpr->setShowSortIndicator(true);
- keysListpr->setFullWidth(true);
- keysListpr->setAllColumnsShowFocus(true);
-
- labeltxt = new QLabel(i18n("Choose a secret key:"),page);
- vbox = new QVBoxLayout(page);
-
- KGpgKeyList list = gpg.keys(true);
-
- for(KGpgKeyList::iterator it = list.begin(); it != list.end(); ++it) {
- QString name = gpg.checkForUtf8((*it).name);
- KListViewItem *item = new
- KListViewItem(keysListpr, name, (*it).email, (*it).id);
- item->setPixmap(0,keyPair);
- if(preselected == (*it).id) {
- keysListpr->setSelected(item, true);
- keysListpr->setCurrentItem(item);
- }
- }
- if(!keysListpr->selectedItem()) {
- keysListpr->setSelected(keysListpr->firstChild(), true);
- keysListpr->setCurrentItem(keysListpr->firstChild());
- }
- vbox->addWidget(labeltxt);
- vbox->addWidget(keysListpr);
- setMainWidget(page);
- };
-
- QString key() {
- QListViewItem* item = keysListpr->selectedItem();
-
- if(item)
- return item->text(2);
- return "";
- }
-};
-
-KGpgMe::KGpgMe() : m_ctx(0), m_useGnuPGAgent(true)
-{
- init(GPGME_PROTOCOL_OpenPGP);
- if(gpgme_new(&m_ctx)) {
- m_ctx = 0;
- }
- else {
- gpgme_set_armor(m_ctx, 1);
- setPassphraseCb();
- }
-}
-
-KGpgMe::~KGpgMe()
-{
- if(m_ctx)
- gpgme_release(m_ctx);
- clearCache();
-}
-
-void KGpgMe::clearCache()
-{
- if(m_cache.size() > 0)
- {
- m_cache.fill('\0');
- m_cache.truncate(0);
- }
-}
-
-void KGpgMe::init(gpgme_protocol_t proto)
-{
- gpgme_error_t err;
-
- gpgme_check_version(NULL);
- setlocale(LC_ALL, "");
- gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
- gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
-
- err = gpgme_engine_check_version(proto);
- if(err) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(gpgme_strsource(err)).arg(gpgme_strerror(err)));
- }
-}
-
-QString KGpgMe::checkForUtf8(QString txt)
-{
- // code borrowed from KGpg which borrowed it from gpa
- const char *s;
-
- // Make sure the encoding is UTF-8.
- // Test structure suggested by Werner Koch
- if(txt.isEmpty())
- return QString::null;
-
- for(s = txt.ascii(); *s && !(*s & 0x80); s++)
- ;
- if (*s && !strchr (txt.ascii(), 0xc3) && (txt.find("\\x")==-1))
- return txt;
-
- // The string is not in UTF-8
- //if (strchr (txt.ascii(), 0xc3)) return (txt+" +++");
- if (txt.find("\\x")==-1)
- return QString::fromUtf8(txt.ascii());
- // if (!strchr (txt.ascii(), 0xc3) || (txt.find("\\x")!=-1)) {
- for(int idx = 0 ; (idx = txt.find( "\\x", idx )) >= 0 ; ++idx) {
- char str[2] = "x";
- str[0] = (char)QString(txt.mid(idx + 2, 2)).toShort(0, 16);
- txt.replace(idx, 4, str);
- }
- if (!strchr (txt.ascii(), 0xc3))
- return QString::fromUtf8(txt.ascii());
- else
- return QString::fromUtf8(QString::fromUtf8(txt.ascii()).ascii());
- // perform Utf8 twice, or some keys display badly
- return txt;
-}
-
-QString KGpgMe::selectKey(QString previous)
-{
- KGpgSelKey dlg(kapp->activeWindow(), "", previous, *this);
-
- if(dlg.exec())
- return dlg.key();
- return "";
-}
-
-// Rest of the code is mainly based in gpgme examples
-
-KGpgKeyList KGpgMe::keys(bool privateKeys /* = false */) const
-{
- KGpgKeyList keys;
- gpgme_error_t err = 0, err2 = 0;
- gpgme_key_t key = 0;
- gpgme_keylist_result_t result = 0;
-
- if(m_ctx) {
- err = gpgme_op_keylist_start(m_ctx, NULL, privateKeys);
- if(!err) {
- while(!(err = gpgme_op_keylist_next(m_ctx, &key))) {
- KGpgKey gpgkey;
-
- if(!key->subkeys)
- continue;
- gpgkey.id = key->subkeys->keyid;
- if(key->uids) {
- gpgkey.name = key->uids->name;
- gpgkey.email = key->uids->email;
- }
- keys.append(gpgkey);
- gpgme_key_unref(key);
- }
-
- if (gpg_err_code (err) == GPG_ERR_EOF)
- err = 0;
- err2 = gpgme_op_keylist_end(m_ctx);
- if(!err)
- err = err2;
- }
- }
-
- if(err) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(gpgme_strsource(err)).arg(gpgme_strerror(err)));
- }
- else {
- result = gpgme_op_keylist_result(m_ctx);
- if (result->truncated) {
- KMessageBox::error(kapp->activeWindow(),
- i18n("Key listing unexpectedly truncated."));
- }
- }
- return keys;
-}
-
-bool KGpgMe::encrypt(const QByteArray& inBuffer, Q_ULONG length,
- QByteArray* outBuffer, QString keyid /* = QString::null */)
-{
- gpgme_error_t err = 0;
- gpgme_data_t in = 0, out = 0;
- gpgme_key_t keys[2] = { NULL, NULL };
- gpgme_key_t* key = NULL;
- gpgme_encrypt_result_t result = 0;
-
- outBuffer->resize(0);
- if(m_ctx) {
- err = gpgme_data_new_from_mem(&in, inBuffer.data(), length, 1);
- if(!err) {
- err = gpgme_data_new(&out);
- if(!err) {
- if(keyid.isNull()) {
- key = NULL;
- } else {
- err = gpgme_get_key(m_ctx, keyid.ascii(), &keys[0], 0);
- key = keys;
- }
-
- if(!err) {
- err = gpgme_op_encrypt(m_ctx, key, GPGME_ENCRYPT_ALWAYS_TRUST,
- in, out);
- if(!err) {
- result = gpgme_op_encrypt_result(m_ctx);
- if (result->invalid_recipients) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(i18n("That public key is not meant for encryption"))
- .arg(result->invalid_recipients->fpr));
- }
- else {
- err = readToBuffer(out, outBuffer);
- }
- }
- }
- }
- }
- }
- if(err != GPG_ERR_NO_ERROR && err != GPG_ERR_CANCELED) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(gpgme_strsource(err)).arg(gpgme_strerror(err)));
- }
- if(err != GPG_ERR_NO_ERROR)
- clearCache();
- if(keys[0])
- gpgme_key_unref(keys[0]);
- if(in)
- gpgme_data_release(in);
- if(out)
- gpgme_data_release(out);
- return (err == GPG_ERR_NO_ERROR);
-}
-
-bool KGpgMe::decrypt(const QByteArray& inBuffer, QByteArray* outBuffer)
-{
- gpgme_error_t err = 0;
- gpgme_data_t in = 0, out = 0;
- gpgme_decrypt_result_t result = 0;
-
- outBuffer->resize(0);
- if(m_ctx) {
- err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
- if(!err) {
- err = gpgme_data_new(&out);
- if(!err) {
- err = gpgme_op_decrypt(m_ctx, in, out);
- if(!err) {
- result = gpgme_op_decrypt_result(m_ctx);
- if(result->unsupported_algorithm) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(i18n("Unsupported algorithm"))
- .arg(result->unsupported_algorithm));
- }
- else {
- err = readToBuffer(out, outBuffer);
- }
- }
- }
- }
- }
- if(err != GPG_ERR_NO_ERROR && err != GPG_ERR_CANCELED) {
- KMessageBox::error(kapp->activeWindow(), QString("%1: %2")
- .arg(gpgme_strsource(err)).arg(gpgme_strerror(err)));
- }
- if(err != GPG_ERR_NO_ERROR)
- clearCache();
- if(in)
- gpgme_data_release(in);
- if(out)
- gpgme_data_release(out);
- return (err == GPG_ERR_NO_ERROR);
-}
-
-#define BUF_SIZE (32 * 1024)
-
-gpgme_error_t KGpgMe::readToBuffer(gpgme_data_t in, QByteArray* outBuffer) const
-{
- int ret;
- gpgme_error_t err = GPG_ERR_NO_ERROR;
-
- ret = gpgme_data_seek(in, 0, SEEK_SET);
- if(ret) {
- err = gpgme_err_code_from_errno(errno);
- }
- else {
- char* buf = new char[BUF_SIZE + 2];
-
- if(buf) {
- while((ret = gpgme_data_read(in, buf, BUF_SIZE)) > 0) {
- uint size = outBuffer->size();
- if(outBuffer->resize(size + ret))
- memcpy(outBuffer->data() + size, buf, ret);
- }
- if(ret < 0)
- err = gpgme_err_code_from_errno(errno);
- delete[] buf;
- }
- }
- return err;
-}
-
-bool KGpgMe::isGnuPGAgentAvailable()
-{
- QString agent_info = getenv("GPG_AGENT_INFO");
-
- if (agent_info.find(':') > 0)
- return true;
- return false;
-}
-
-void KGpgMe::setPassphraseCb()
-{
- bool agent = false;
- QString agent_info;
-
- agent_info = getenv("GPG_AGENT_INFO");
-
- if(m_useGnuPGAgent)
- {
- if (agent_info.find(':'))
- agent = true;
- if(agent_info.startsWith("disable:"))
- setenv("GPG_AGENT_INFO", agent_info.mid(8), 1);
- }
- else
- {
- if(!agent_info.startsWith("disable:"))
- setenv("GPG_AGENT_INFO", "disable:" + agent_info, 1);
- }
- if (agent)
- gpgme_set_passphrase_cb(m_ctx, 0, 0);
- else
- gpgme_set_passphrase_cb(m_ctx, passphraseCb, this);
-}
-
-gpgme_error_t KGpgMe::passphraseCb(void* hook, const char* uid_hint,
- const char* passphrase_info,
- int last_was_bad, int fd)
-{
- KGpgMe* gpg = static_cast<KGpgMe*>(hook);
- return gpg->passphrase(uid_hint, passphrase_info, last_was_bad, fd);
-}
-
-gpgme_error_t KGpgMe::passphrase(const char* uid_hint,
- const char* /*passphrase_info*/,
- int last_was_bad, int fd)
-{
- gpgme_error_t res = GPG_ERR_CANCELED;
- QString s;
- QString gpg_hint = checkForUtf8(uid_hint);
- int result;
-
- if(last_was_bad){
- s += "<b>" + i18n("Wrong password.") + "</b><br><br>\n\n";
- clearCache();
- }
-
- if(!m_text.isEmpty())
- s += m_text + "<br>";
-
- if(!gpg_hint.isEmpty())
- s += gpg_hint;
-
- if(m_cache.isEmpty()){
- QCString password;
-
- if(m_saving)
- result = KPasswordDialog::getNewPassword(password, s);
- else
- result = KPasswordDialog::getPassword(password, s);
-
- if(result == KPasswordDialog::Accepted)
- m_cache = password;
- }
- else
- result = KPasswordDialog::Accepted;
-
- if(result == KPasswordDialog::Accepted) {
- write(fd, m_cache.data(), m_cache.length());
- res = 0;
- }
- write(fd, "\n", 1);
- return res;
-}
-#endif // HAVE_LIBGPGME
diff --git a/2copyFrom/kgpgme-sample.h b/2copyFrom/kgpgme-sample.h
deleted file mode 100644
index 6a3d912..0000000
--- a/2copyFrom/kgpgme-sample.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006 by Petri Damsten *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program 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 General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-#ifndef KGPGME_H
-#define KGPGME_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_LIBGPGME
-
-#include <gpgme.h>
-#include <qstringlist.h>
-
-/**
- @author Petri Damsten <[email protected]>
-*/
-
-class KGpgKey
-{
- public:
- QString id;
- QString name;
- QString email;
-};
-
-typedef QValueList< KGpgKey > KGpgKeyList;
-
-class KGpgMe
-{
- public:
- KGpgMe();
- ~KGpgMe();
-
- QString selectKey(QString previous = QString::null);
- KGpgKeyList keys(bool privateKeys = false) const;
- void setText(QString text, bool saving) { m_text = text; m_saving = saving; };
- void setUseGnuPGAgent(bool use) { m_useGnuPGAgent = use; setPassphraseCb(); };
- QString text() const { return m_text; };
- bool saving() const { return m_saving; };
- void clearCache();
-
- bool encrypt(const QByteArray& inBuffer, Q_ULONG length,
- QByteArray* outBuffer, QString keyid = QString::null);
- bool decrypt(const QByteArray& inBuffer, QByteArray* outBuffer);
-
- static QString checkForUtf8(QString txt);
- static bool isGnuPGAgentAvailable();
-
- private:
- gpgme_ctx_t m_ctx;
- QString m_text;
- bool m_saving;
- bool m_useGnuPGAgent;
- QCString m_cache;
-
- void init(gpgme_protocol_t proto);
- gpgme_error_t readToBuffer(gpgme_data_t in, QByteArray* outBuffer) const;
- void setPassphraseCb();
- static gpgme_error_t passphraseCb(void *hook, const char *uid_hint,
- const char *passphrase_info,
- int last_was_bad, int fd);
- gpgme_error_t passphrase(const char *uid_hint,
- const char *passphrase_info,
- int last_was_bad, int fd);
-};
-#endif // HAVE_LIBGPGME
-#endif
diff --git a/winbuild/static-win.zip b/winbuild/static-win.zip
deleted file mode 100644
index b4ffc54..0000000
--- a/winbuild/static-win.zip
+++ /dev/null
Binary files differ