diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-03-04 11:27:37 +0100 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-03-04 11:27:37 +0100 |
| commit | 02f9b4ad59a0bc4a0b7969d05816e78ec8c9c8f0 (patch) | |
| tree | ab41b8a7b3ec5df15189f2851f2f3a49d004397e /lib/MiddleWare/RPMInfo.cpp | |
| parent | 8e0b0f53b0cc139c45619472177ddbf8e616a947 (diff) | |
| download | abrt-02f9b4ad59a0bc4a0b7969d05816e78ec8c9c8f0.tar.gz abrt-02f9b4ad59a0bc4a0b7969d05816e78ec8c9c8f0.tar.xz abrt-02f9b4ad59a0bc4a0b7969d05816e78ec8c9c8f0.zip | |
rename file
Diffstat (limited to 'lib/MiddleWare/RPMInfo.cpp')
| -rw-r--r-- | lib/MiddleWare/RPMInfo.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/lib/MiddleWare/RPMInfo.cpp b/lib/MiddleWare/RPMInfo.cpp deleted file mode 100644 index 971148b..0000000 --- a/lib/MiddleWare/RPMInfo.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#include "RPMInfo.h" -#include <iostream> - -CRPMInfo::CRPMInfo() -{ - char *argv[] = {(char*)""}; - m_poptContext = rpmcliInit(0, argv, NULL); -} - -CRPMInfo::~CRPMInfo() -{ - rpmcliFini(m_poptContext); -} - -void CRPMInfo::LoadOpenGPGPublicKey(const std::string& pFileName) -{ - uint8_t* pkt = NULL; - size_t pklen; - pgpKeyID_t keyID; - if (pgpReadPkts(pFileName.c_str(), &pkt, &pklen) != PGPARMOR_PUBKEY) - { - free(pkt); - std::cerr << "CRPMInfo::LoadOpenGPGPublicKey(): Can not load public key " + pFileName << std::endl; - return; - } - if (pgpPubkeyFingerprint(pkt, pklen, keyID) == 0) - { - char* fedoraFingerprint = pgpHexStr(keyID, sizeof(keyID)); - if (fedoraFingerprint != NULL) - { - m_setFingerprints.insert(fedoraFingerprint); - } - } - free(pkt); -} - -bool CRPMInfo::CheckFingerprint(const std::string& pPackage) -{ - bool ret = false; - rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage.c_str(), 0); - Header header; - if ((header = rpmdbNextIterator(iter)) != NULL) - { - if (headerIsEntry(header, RPMTAG_SIGGPG)) - { - char* headerFingerprint; - rpmtd td = rpmtdNew(); - headerGet(header, RPMTAG_SIGGPG, td, HEADERGET_DEFAULT); - headerFingerprint = pgpHexStr((const uint8_t*)td->data + 9, sizeof(pgpKeyID_t)); - rpmtdFree(td); - if (headerFingerprint != NULL) - { - if (m_setFingerprints.find(headerFingerprint) != m_setFingerprints.end()) - { - free(headerFingerprint); - ret = true; - } - } - } - } - rpmdbFreeIterator(iter); - rpmtsFree(ts); - return ret; -} - -bool CRPMInfo::CheckHash(const std::string& pPackage, const std::string& pPath) -{ - bool ret = false; - rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage.c_str(), 0); - Header header; - if ((header = rpmdbNextIterator(iter)) != NULL) - { - rpmfi fi = rpmfiNew(ts, header, RPMTAG_BASENAMES, 0); - pgpHashAlgo hashAlgo; - std::string headerHash; - char computedHash[1024] = ""; - - while(rpmfiNext(fi) != -1) - { - if (pPath == rpmfiFN(fi)) - { - headerHash = rpmfiFDigestHex(fi, &hashAlgo); - } - } - rpmfiFree(fi); - - rpmDoDigest(hashAlgo, pPath.c_str(), 1, (unsigned char*) computedHash, NULL); - - if (headerHash != "" && headerHash == computedHash) - { - ret = true; - } - } - rpmdbFreeIterator(iter); - rpmtsFree(ts); - return ret; -} - -std::string CRPMInfo::GetPackage(const std::string& pFileName, std::string& pDescription) -{ - std::string ret = ""; - rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName.c_str(), 0); - Header header; - if ((header = rpmdbNextIterator(iter)) != NULL) - { - char* nerv = headerGetNEVR(header, NULL); - if (nerv != NULL) - { - ret = nerv; - free(nerv); - } - rpmtd td = rpmtdNew(); - headerGet(header, RPMTAG_SUMMARY, td, HEADERGET_DEFAULT); - const char* summary = rpmtdGetString(td); - headerGet(header, RPMTAG_DESCRIPTION, td, HEADERGET_DEFAULT); - const char* description = rpmtdGetString(td); - pDescription = summary + std::string("\n\n") + description; - rpmtdFree(td); - } - - rpmdbFreeIterator(iter); - rpmtsFree(ts); - return ret; -} - |
