void CertificateInfoWidgetImpl::slotKeyExistanceCheckNextCandidate( const GpgME::Key & key ) { if ( key.isNull() || mChain.empty() || !key.primaryFingerprint() ) return; if ( qstrcmp( key.primaryFingerprint(), mChain.back().primaryFingerprint() ) == 0 ) mHaveKeyLocally = true; }
void Identity::setKey(const GpgME::Key &key) { if (key.isNull()) { m_identity->setPGPEncryptionKey(QByteArray()); m_identity->setPGPSigningKey(QByteArray()); m_identity->setSMIMEEncryptionKey(QByteArray()); m_identity->setSMIMESigningKey(QByteArray()); } else if (key.protocol() == GpgME::OpenPGP) { m_identity->setPGPSigningKey(key.primaryFingerprint()); m_identity->setPGPEncryptionKey(key.primaryFingerprint()); } else if (key.protocol() == GpgME::CMS) { m_identity->setSMIMESigningKey(key.primaryFingerprint()); m_identity->setSMIMEEncryptionKey(key.primaryFingerprint()); } }
void Kleo::HierarchicalKeyListJob::slotNextKey( const GpgME::Key & key ) { if ( const char * chain_id = key.chainID() ) mNextSet.insert( chain_id ); if ( const char * fpr = key.primaryFingerprint() ) if ( mSentSet.find( fpr ) == mSentSet.end() ) { mSentSet.insert( fpr ); emit nextKey( key ); } }
void Kleo::KeyListView::slotRefreshKey( const GpgME::Key & key ) { const char * fpr = key.primaryFingerprint(); if ( !fpr ) return; if ( KeyListViewItem * item = itemByFingerprint( fpr ) ) item->setKey ( key ); else // none found -> add it slotAddKey( key ); }
void Kleo::KeyListView::doHierarchicalInsert( const GpgME::Key & key ) { const QCString fpr = key.primaryFingerprint(); if ( fpr.isEmpty() ) return; KeyListViewItem * item = 0; if ( !key.isRoot() ) if ( KeyListViewItem * parent = itemByFingerprint( key.chainID() ) ) { item = new KeyListViewItem( parent, key ); parent->setOpen( true ); } if ( !item ) item = new KeyListViewItem( this, key ); // top-level (for now) d->itemMap.insert( std::make_pair( fpr, item ) ); }
void CertificateInfoWidgetImpl::setKey( const GpgME::Key & key ) { mChain.clear(); mFoundIssuer = true; mHaveKeyLocally = false; listView->clear(); pathView->clear(); importButton->setEnabled( false ); if ( key.isNull() ) return; mChain.push_front( key ); startKeyExistanceCheck(); // starts a local keylisting to enable the // importButton if needed QListViewItem * item = 0; item = new QListViewItem( listView, item, i18n("Valid"), QString("From %1 to %2") .arg( time_t2string( key.subkey(0).creationTime() ), time_t2string( key.subkey(0).expirationTime() ) ) ); item = new QListViewItem( listView, item, i18n("Can be used for signing"), key.canSign() ? i18n("Yes") : i18n("No") ); item = new QListViewItem( listView, item, i18n("Can be used for encryption"), key.canEncrypt() ? i18n("Yes") : i18n("No") ); item = new QListViewItem( listView, item, i18n("Can be used for certification"), key.canCertify() ? i18n("Yes") : i18n("No") ); item = new QListViewItem( listView, item, i18n("Can be used for authentication"), key.canAuthenticate() ? i18n("Yes") : i18n("No" ) ); item = new QListViewItem( listView, item, i18n("Fingerprint"), key.primaryFingerprint() ); item = new QListViewItem( listView, item, i18n("Issuer"), Kleo::DN( key.issuerName() ).prettyDN() ); item = new QListViewItem( listView, item, i18n("Serial Number"), key.issuerSerial() ); const Kleo::DN dn = key.userID(0).id(); // FIXME: use the attributeLabelMap from certificatewizardimpl.cpp: static QMap<QString,QString> dnComponentNames; if ( dnComponentNames.isEmpty() ) { dnComponentNames["C"] = i18n("Country"); dnComponentNames["OU"] = i18n("Organizational Unit"); dnComponentNames["O"] = i18n("Organization"); dnComponentNames["L"] = i18n("Location"); dnComponentNames["CN"] = i18n("Common Name"); dnComponentNames["EMAIL"] = i18n("Email"); } for ( Kleo::DN::const_iterator dnit = dn.begin() ; dnit != dn.end() ; ++dnit ) { QString displayName = (*dnit).name(); if( dnComponentNames.contains(displayName) ) displayName = dnComponentNames[displayName]; item = new QListViewItem( listView, item, displayName, (*dnit).value() ); } const std::vector<GpgME::UserID> uids = key.userIDs(); if ( !uids.empty() ) { item = new QListViewItem( listView, item, i18n("Subject"), Kleo::DN( uids.front().id() ).prettyDN() ); for ( std::vector<GpgME::UserID>::const_iterator it = uids.begin() + 1 ; it != uids.end() ; ++it ) { if ( !(*it).id() ) continue; const QString email = QString::fromUtf8( (*it).id() ).stripWhiteSpace(); if ( email.isEmpty() ) continue; if ( email.startsWith( "<" ) ) item = new QListViewItem( listView, item, i18n("Email"), email.mid( 1, email.length()-2 ) ); else item = new QListViewItem( listView, item, i18n("A.k.a."), email ); } } updateChainView(); startCertificateChainListing(); startCertificateDump(); }