diff --git a/libretroshare/src/pqi/authgpg.cc b/libretroshare/src/pqi/authgpg.cc index 9ae44fd46..e700184a1 100644 --- a/libretroshare/src/pqi/authgpg.cc +++ b/libretroshare/src/pqi/authgpg.cc @@ -456,6 +456,11 @@ bool AuthGPG::storeAllKeys_locked() /* store in map */ mKeyList[nu.id] = nu; + + //store own key + if (nu.id == mOwnGpgId) { + mOwnGpgCert = nu; + } } if (GPG_ERR_NO_ERROR != gpgme_op_keylist_end(CTX)) @@ -913,6 +918,19 @@ bool AuthGPG::getPGPDetails(std::string id, RsPeerDetails &d) d.validLvl = it->second.validLvl; d.ownsign = it->second.ownsign; d.gpgSigners = it->second.signers; + + //did the peer signed me ? + d.hasSignedMe = false; + std::list::iterator signersIt; + for(signersIt = mOwnGpgCert.signers.begin(); signersIt != mOwnGpgCert.signers.end() ; ++signersIt) { + if (*signersIt == d.id) { + d.hasSignedMe = true; + break; + } + } + + + std::cerr << "AuthGPG::getPGPDetails() get details for : " << id << std::endl; std::cerr << "AuthGPG::getPGPDetails() Name : " << it->second.name << std::endl; return true; diff --git a/libretroshare/src/rsiface/rspeers.h b/libretroshare/src/rsiface/rspeers.h index 8de764624..fafbf9867 100644 --- a/libretroshare/src/rsiface/rspeers.h +++ b/libretroshare/src/rsiface/rspeers.h @@ -91,7 +91,8 @@ class RsPeerDetails uint32_t trustLvl; uint32_t validLvl; - bool ownsign; /* we have signed certificate */ + bool ownsign; /* we have signed the remote peer GPG key */ + bool hasSignedMe; /* the remote peer has signed my GPG key */ /* Network details (only valid if friend) */ uint32_t state; diff --git a/libretroshare/src/rsserver/p3peers.cc b/libretroshare/src/rsserver/p3peers.cc index 9f011da5a..fefcc2414 100644 --- a/libretroshare/src/rsserver/p3peers.cc +++ b/libretroshare/src/rsserver/p3peers.cc @@ -301,7 +301,10 @@ bool p3Peers::getPeerDetails(std::string id, RsPeerDetails &d) std::cerr << std::endl; #endif - /* get from mAuthMgr (first) */ + /* get from gpg (first), to fill in the sign and trust details */ + this->getPGPDetails(AuthSSL::getAuthSSL()->getGPGId(id), d); + + //get the ssl details sslcert authDetail; if (!AuthSSL::getAuthSSL()->getCertDetails(id, authDetail)) { @@ -310,17 +313,12 @@ bool p3Peers::getPeerDetails(std::string id, RsPeerDetails &d) d.fpr = authDetail.fpr; d.id = authDetail.id; - d.name = authDetail.name; - d.email = authDetail.email; + //d.name = authDetail.name; + //d.email = authDetail.email; d.location = authDetail.location; d.org = authDetail.org; - d.gpgSigners = authDetail.signers; - d.issuer = authDetail.issuer; - d.ownsign = AuthGPG::getAuthGPG()->isPGPSigned(AuthSSL::getAuthSSL()->getGPGId(id)); - - /* generate */ d.authcode = "AUTHCODE"; diff --git a/retroshare-gui/src/gui/NetworkDialog.cpp b/retroshare-gui/src/gui/NetworkDialog.cpp index 0badda672..c540a3c66 100644 --- a/retroshare-gui/src/gui/NetworkDialog.cpp +++ b/retroshare-gui/src/gui/NetworkDialog.cpp @@ -378,15 +378,7 @@ void NetworkDialog::insertConnect() item -> setText(1, QString::fromStdString(detail.name)); /* (2) has me auth */ - bool hasSignedMe = false; - std::list::iterator signersIt; - for(signersIt = ownGPGDetails.gpgSigners.begin(); signersIt != ownGPGDetails.gpgSigners.end() ; ++signersIt) { - if (*signersIt == detail.id) { - hasSignedMe = true; - break; - } - } - if (hasSignedMe) + if (detail.hasSignedMe) item -> setText(2, tr("Has authenticated me")); else item -> setText(2, tr("Unknown")); @@ -413,7 +405,7 @@ void NetworkDialog::insertConnect() } else { - if (hasSignedMe) + if (detail.hasSignedMe) { backgrndcolor=Qt::magenta; item -> setIcon(0,(QIcon(IMAGE_TRUSTED))); diff --git a/retroshare-gui/src/gui/connect/ConfCertDialog.cpp b/retroshare-gui/src/gui/connect/ConfCertDialog.cpp index ac558c2a8..2907202c8 100644 --- a/retroshare-gui/src/gui/connect/ConfCertDialog.cpp +++ b/retroshare-gui/src/gui/connect/ConfCertDialog.cpp @@ -136,6 +136,17 @@ void ConfCertDialog::loadDialog() ui.ipAddressList->clear(); for(std::list::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it) ui.ipAddressList->addItem(QString::fromStdString(*it)); + + ui.orgloc->show(); + ui.label_11->show(); + ui.country->show(); + ui.label_8->show(); + ui.lastcontact->show(); + ui.label_7->show(); + ui.version->show(); + ui.label_3->show(); + + ui.groupBox->show(); } else { ui.orgloc->hide(); ui.label_11->hide(); @@ -166,22 +177,12 @@ void ConfCertDialog::loadDialog() ui.sign_button->hide(); ui.signed_already_label->show(); } else { - ui.sign_button->show(); + ui.sign_button->show(); ui.signed_already_label->hide(); } - bool hasSignedMe = false; - RsPeerDetails ownGPGDetails ; - rsPeers->getPGPDetails(rsPeers->getPGPOwnId(), ownGPGDetails); - std::list::iterator signersIt; - for(signersIt = ownGPGDetails.gpgSigners.begin(); signersIt != ownGPGDetails.gpgSigners.end() ; ++signersIt) { - if (*signersIt == detail.id) { - hasSignedMe = true; - break; - } - } - if (hasSignedMe) { - ui.is_signing_me->setText(tr("Peer has acepted me as a friend and did not signed my GPG key")); + if (detail.hasSignedMe) { + ui.is_signing_me->setText(tr("Peer has acepted me as a friend and did signed my GPG key")); } else { ui.is_signing_me->setText(tr("Peer has not acepted me as a friend and did not signed my GPG key")); } diff --git a/retroshare-gui/src/gui/connect/ConfCertDialog.ui b/retroshare-gui/src/gui/connect/ConfCertDialog.ui index 7a9ae7d6a..f14091bb4 100644 --- a/retroshare-gui/src/gui/connect/ConfCertDialog.ui +++ b/retroshare-gui/src/gui/connect/ConfCertDialog.ui @@ -21,7 +21,7 @@ - 1 + 0 @@ -256,6 +256,12 @@ + + + 50 + false + + Key signing settings