diff options
author | jbj <devnull@localhost> | 2002-08-02 16:39:55 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2002-08-02 16:39:55 +0000 |
commit | 31e9a0f278402dd5243bbb6c38d03080073836b4 (patch) | |
tree | 82c8494e6c20230b28ca3c03e46266030a0f2a0b /rpmio | |
parent | 4a58c73baa5212da005a5192f60a77fdfa8601ec (diff) | |
download | rpm-31e9a0f278402dd5243bbb6c38d03080073836b4.tar.gz rpm-31e9a0f278402dd5243bbb6c38d03080073836b4.tar.bz2 rpm-31e9a0f278402dd5243bbb6c38d03080073836b4.zip |
- fix: signed pubkeys were imported incorrectly (#68291).
- include tgpg script to verify signatures using only gpg.
CVS patchset: 5593
CVS date: 2002/08/02 16:39:55
Diffstat (limited to 'rpmio')
-rw-r--r-- | rpmio/rpmpgp.c | 20 | ||||
-rw-r--r-- | rpmio/rpmpgp.h | 3 |
2 files changed, 9 insertions, 14 deletions
diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c index 31ab41da2..5b7108d0e 100644 --- a/rpmio/rpmpgp.c +++ b/rpmio/rpmpgp.c @@ -346,7 +346,7 @@ fprintf(stderr, "\t %s ", pre), mp32println(stderr, mpn->size, mpn->data); } /*@=boundswrite@*/ -int pgpPrtSubType(const byte *h, unsigned int hlen) +int pgpPrtSubType(const byte *h, unsigned int hlen, pgpSigType sigtype) { const byte *p = h; unsigned plen; @@ -377,11 +377,8 @@ int pgpPrtSubType(const byte *h, unsigned int hlen) /*@switchbreak@*/ break; case PGPSUBTYPE_SIG_CREATE_TIME: /*@-mods -mayaliasunique @*/ -#ifdef DYING - if (_digp && _digp->tag == PGPTAG_PUBLIC_KEY) -#else - if (_digp && !(_digp->saved & PGPDIG_SAVED_TIME)) -#endif + if (sigtype == PGPSIGTYPE_POSITIVE_CERT && + _digp && !(_digp->saved & PGPDIG_SAVED_TIME)) { _digp->saved |= PGPDIG_SAVED_TIME; memcpy(_digp->time, p+1, sizeof(_digp->time)); @@ -400,11 +397,8 @@ int pgpPrtSubType(const byte *h, unsigned int hlen) case PGPSUBTYPE_ISSUER_KEYID: /* issuer key ID */ /*@-mods -mayaliasunique @*/ -#ifdef DYING - if (_digp && _digp->tag == PGPTAG_PUBLIC_KEY) -#else - if (_digp && !(_digp->saved & PGPDIG_SAVED_ID)) -#endif + if (sigtype == PGPSIGTYPE_POSITIVE_CERT && + _digp && !(_digp->saved & PGPDIG_SAVED_ID)) { _digp->saved |= PGPDIG_SAVED_ID; memcpy(_digp->signid, p+1, sizeof(_digp->signid)); @@ -586,7 +580,7 @@ fprintf(stderr, " hash[%u] -- %s\n", plen, pgpHexStr(p, plen)); _digp->hash = memcpy(xmalloc(_digp->hashlen), v, _digp->hashlen); } /*@=mods@*/ - (void) pgpPrtSubType(p, plen); + (void) pgpPrtSubType(p, plen, v->sigtype); p += plen; plen = pgpGrab(p,2); @@ -594,7 +588,7 @@ fprintf(stderr, " hash[%u] -- %s\n", plen, pgpHexStr(p, plen)); if (_debug && _print) fprintf(stderr, " unhash[%u] -- %s\n", plen, pgpHexStr(p, plen)); - (void) pgpPrtSubType(p, plen); + (void) pgpPrtSubType(p, plen, v->sigtype); p += plen; plen = pgpGrab(p,2); diff --git a/rpmio/rpmpgp.h b/rpmio/rpmpgp.h index 962a1ce9f..05d238c54 100644 --- a/rpmio/rpmpgp.h +++ b/rpmio/rpmpgp.h @@ -1144,9 +1144,10 @@ void pgpPrtVal(const char * pre, pgpValTbl vs, byte val) * Print/parse an OpenPGP subtype packet. * @param h packet * @param hlen packet length (no. of bytes) + * @param sigtype signature type * @return 0 on success */ -int pgpPrtSubType(const byte *h, unsigned int hlen) +int pgpPrtSubType(const byte *h, unsigned int hlen, pgpSigType sigtype) /*@globals fileSystem @*/ /*@modifies fileSystem @*/; |