return 0;
}
-int doCheckSig(int pgp, char **argv)
+int doCheckSig(int flags, char **argv)
{
int fd, ofd, res, res2, res3, missingKeys;
struct rpmlead lead;
sprintf(buffer, "%s: ", rpm);
}
while (headerNextIterator(sigIter, &tag, &type, &ptr, &count)) {
- if ((tag == RPMSIGTAG_PGP) && !pgp) {
+ if ((tag == RPMSIGTAG_PGP) && !(flags & CHECKSIG_PGP))
continue;
- }
- if ((res3 = rpmVerifySignature(sigtarget, tag, ptr, count, result))) {
+ else if ((tag == RPMSIGTAG_MD5 ||
+ tag == RPMSIGTAG_LITTLEENDIANMD5)
+ && !(flags & CHECKSIG_MD5))
+ continue;
+
+ if ((res3 = rpmVerifySignature(sigtarget, tag, ptr, count,
+ result))) {
if (rpmIsVerbose()) {
strcat(buffer, result);
res2 = 1;
#ifndef H_CHECKSIG
#define H_CHECKSIG
-int doCheckSig(int pgp, char **argv);
+#define CHECKSIG_PGP (1 << 0)
+#define CHECKSIG_MD5 (1 << 1)
+int doCheckSig(int flags, char **argv);
int doReSign(int add, char *passPhrase, char **argv);
#define ADD_SIGNATURE 1