File nosigcheckforpubkeys.diff of Package rpm
--- lib/rpmts.c.orig 2013-04-24 16:24:16.000000000 +0000
+++ lib/rpmts.c 2013-04-24 17:09:10.000000000 +0000
@@ -375,7 +375,10 @@ fprintf(stderr, "*** free pkt %p[%d] id
int ix = -1;
rpmdbMatchIterator mi;
Header h;
+ rpmVSFlags ovsflags = rpmtsVSFlags(ts);
+ /* Turn off header sig checking for pubkeys */
+ rpmtsSetVSFlags(ts, ovsflags | RPMVSF_NOSHA1HEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSAHEADER);
/* Retrieve the pubkey that matches the signature. */
mi = rpmtsInitIterator(ts, RPMTAG_PUBKEYS, sigp->signid, sizeof(sigp->signid));
while ((h = rpmdbNextIterator(mi)) != NULL) {
@@ -395,6 +398,7 @@ fprintf(stderr, "*** free pkt %p[%d] id
break;
}
mi = rpmdbFreeIterator(mi);
+ rpmtsSetVSFlags(ts, ovsflags);
/*@-branchstate@*/
if (ix >= 0) {