void VCardXXPort::addKey( KABC::Addressee &addr, KABC::Key::Types type ) { QString fingerprint = addr.custom( "KADDRESSBOOK", (type == KABC::Key::PGP ? "OPENPGPFP" : "SMIMEFP") ); if ( fingerprint.isEmpty() ) return; GpgME::Context * context = GpgME::Context::createForProtocol( GpgME::Context::OpenPGP ); if ( !context ) { kdError() << "No context available" << endl; return; } context->setArmor( false ); context->setTextMode( false ); QGpgME::QByteArrayDataProvider dataProvider; GpgME::Data dataObj( &dataProvider ); GpgME::Error error = context->exportPublicKeys( fingerprint.latin1(), dataObj ); delete context; if ( error ) { kdError() << error.asString() << endl; return; } KABC::Key key; key.setType( type ); key.setBinaryData( dataProvider.data() ); addr.insertKey( key ); }
// static void MessageBox::auditLog( QWidget * parent, const Job * job, const QString & caption ) { if ( !job ) return; if ( !GpgME::hasFeature( AuditLogFeature ) || !job->isAuditLogSupported() ) { KMessageBox::information( parent, i18n("Your system does not have support for GnuPG Audit Logs"), i18n("System Error") ); return; } const GpgME::Error err = job->auditLogError(); if ( err && err.code() != GPG_ERR_NO_DATA ) { KMessageBox::information( parent, i18n("An error occurred while trying to retrieve the GnuPG Audit Log:\n%1", QString::fromLocal8Bit( err.asString() ) ), i18n("GnuPG Audit Log Error") ); return; } const QString log = job->auditLogAsHtml(); if ( log.isEmpty() ) { KMessageBox::information( parent, i18n("No GnuPG Audit Log available for this operation."), i18n("No GnuPG Audit Log") ); return; } auditLog( parent, log, caption ); }
void KGPGFile::keyList(QStringList& list, bool secretKeys, const QString& pattern) { d->m_keys.clear(); list.clear(); if (d->ctx && !d->ctx->startKeyListing(pattern.toUtf8().constData(), secretKeys)) { GpgME::Error error; for (;;) { GpgME::Key key; key = d->ctx->nextKey(error); if (error.encodedError() != GPG_ERR_NO_ERROR) break; bool needPushBack = true; std::vector<GpgME::UserID> userIDs = key.userIDs(); std::vector<GpgME::Subkey> subkeys = key.subkeys(); for (unsigned int i = 0; i < userIDs.size(); ++i) { if (subkeys.size() > 0) { for (unsigned int j = 0; j < subkeys.size(); ++j) { const GpgME::Subkey& skey = subkeys[j]; if (((skey.canEncrypt() && !secretKeys) || (skey.isSecret() && secretKeys)) && !(skey.isRevoked() || skey.isExpired() || skey.isInvalid() || skey.isDisabled())) { QString entry = QString("%1:%2").arg(key.shortKeyID()).arg(userIDs[i].id()); list += entry; if (needPushBack) { d->m_keys.push_back(key); needPushBack = false; } } else { // qDebug("Skip key '%s'", key.shortKeyID()); } } } else { // we have no subkey, so we operate on the main key if (((key.canEncrypt() && !secretKeys) || (key.hasSecret() && secretKeys)) && !(key.isRevoked() || key.isExpired() || key.isInvalid() || key.isDisabled())) { QString entry = QString("%1:%2").arg(key.shortKeyID()).arg(userIDs[i].id()); list += entry; if (needPushBack) { d->m_keys.push_back(key); needPushBack = false; } } else { // qDebug("Skip key '%s'", key.shortKeyID()); } } } } d->ctx->endKeyListing(); } }
static void showChainListError( QWidget * parent, const GpgME::Error & err, const char * subject ) { assert( err ); const QString msg = i18n("<qt><p>An error occurred while fetching " "the certificate <b>%1</b> from the backend:</p>" "<p><b>%2</b></p></qt>") .arg( subject ? QString::fromUtf8( subject ) : QString::null, QString::fromLocal8Bit( err.asString() ) ); KMessageBox::error( parent, msg, i18n("Certificate Listing Failed" ) ); }
void KeyGenerator::showError( const GpgME::Error & err ) { KMessageBox::error( this, "Could not start key generation: " + QString::fromLocal8Bit( err.asString() ), "Key Generation Error" ); }
void slotOperationDoneEvent(GpgME::Context *, const GpgME::Error &error) { qDebug("listing done error: %d", error.encodedError()); }