make peer detail gui work for the gpg and the ssl id

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2011 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2010-01-13 21:12:56 +00:00
parent 41600dc3cf
commit dabe44356a
6 changed files with 49 additions and 33 deletions

View file

@ -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<std::string>::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;

View file

@ -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;

View file

@ -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";