--- rpmio/rpmpgp.c.orig 2008-10-28 16:14:18.000000000 +0000 +++ rpmio/rpmpgp.c 2008-10-28 16:09:51.000000000 +0000 @@ -876,6 +876,7 @@ const uint8_t *se, *h; DIGEST_CTX ctx; int rc = -1; /* assume failure. */ + byte in[3]; if (!(val & 0x80)) return rc; @@ -926,7 +927,12 @@ } ctx = rpmDigestInit(PGPHASHALGO_SHA1, RPMDIGEST_NONE); - (void) rpmDigestUpdate(ctx, pkt, (se-pkt)); + i = se - h; + in[0] = 0x99; + in[1] = i >> 8; + in[2] = i; + (void) rpmDigestUpdate(ctx, in, 3); + (void) rpmDigestUpdate(ctx, h, i); (void) rpmDigestFinal(ctx, (void **)&d, &dlen, 0); memmove(keyid, (d + (dlen-8)), 8);