RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 04-Nov-2007 18:59:56
Branch: HEAD Handle: 2007110417595501
Modified files:
rpm CHANGES
rpm/build parsePreamble.c
rpm/rpmdb signature.c signature.h
rpm/rpmio rpmio_internal.h rpmpgp.c rpmpgp.h
Log:
- jbj: use HAE_t for signature tags, change int_32 to uint32_t where
needed.
Summary:
Revision Changes Path
1.1770 +1 -0 rpm/CHANGES
2.142 +1 -0 rpm/build/parsePreamble.c
1.15 +76 -31 rpm/rpmdb/signature.c
1.3 +1 -1 rpm/rpmdb/signature.h
2.83 +3 -3 rpm/rpmio/rpmio_internal.h
2.64 +4 -4 rpm/rpmio/rpmpgp.c
2.51 +5 -5 rpm/rpmio/rpmpgp.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1769 -r1.1770 CHANGES
--- rpm/CHANGES 4 Nov 2007 01:14:28 -0000 1.1769
+++ rpm/CHANGES 4 Nov 2007 17:59:55 -0000 1.1770
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: use HAE_t for signature tags, change int_32 to uint32_t where needed.
- rpm.org: rpmhash.c: use size_t for keySize.
- rpm.org: remove unnecessary rpmShowProgress() prototype.
- jbj: add all-mode --macrosused option, debug rpmGetMacroEntries().
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parsePreamble.c
============================================================================
$ cvs diff -u -r2.141 -r2.142 parsePreamble.c
--- rpm/build/parsePreamble.c 3 Nov 2007 23:43:59 -0000 2.141
+++ rpm/build/parsePreamble.c 4 Nov 2007 17:59:55 -0000 2.142
@@ -74,6 +74,7 @@
he->c = argc;
he->append = 1;
xx = hae(h, he, 0);
+ he->append = 0;
}
argv = _free(argv);
}
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/signature.c
============================================================================
$ cvs diff -u -r1.14 -r1.15 signature.c
--- rpm/rpmdb/signature.c 19 Oct 2007 00:36:47 -0000 1.14
+++ rpm/rpmdb/signature.c 4 Nov 2007 17:59:56 -0000 1.15
@@ -213,8 +213,8 @@
* @param passPhrase private key pass phrase
* @return 0 on success, 1 on failure
*/
-static int makePGPSignature(const char * file, /*@unused@*/ int_32 * sigTagp,
- /*@out@*/ byte ** pktp, /*@out@*/ int_32 * pktlenp,
+static int makePGPSignature(const char * file, /*@unused@*/ uint32_t * sigTagp,
+ /*@out@*/ byte ** pktp, /*@out@*/ uint32_t * pktlenp,
/*@null@*/ const char * passPhrase)
/*@globals errno, rpmGlobalMacroContext, h_errno,
fileSystem, internalState @*/
@@ -348,8 +348,8 @@
* @param passPhrase private key pass phrase
* @return 0 on success, 1 on failure
*/
-static int makeGPGSignature(const char * file, int_32 * sigTagp,
- /*@out@*/ byte ** pktp, /*@out@*/ int_32 * pktlenp,
+static int makeGPGSignature(const char * file, uint32_t * sigTagp,
+ /*@out@*/ byte ** pktp, /*@out@*/ uint32_t * pktlenp,
/*@null@*/ const char * passPhrase)
/*@globals rpmGlobalMacroContext, h_errno,
fileSystem, internalState @*/
@@ -518,20 +518,22 @@
* @param passPhrase private key pass phrase
* @return 0 on success, -1 on failure
*/
-static int makeHDRSignature(Header sigh, const char * file, int_32 sigTag,
+static int makeHDRSignature(Header sigh, const char * file, uint32_t sigTag,
/*@null@*/ const char * passPhrase)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies sigh, sigTag, rpmGlobalMacroContext, fileSystem, internalState @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
+ HAE_t hae = headerAddExtension;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
Header h = NULL;
FD_t fd = NULL;
byte * pkt;
- int_32 pktlen;
+ uint32_t pktlen;
const char * fn = NULL;
const char * SHA1 = NULL;
int ret = -1; /* assume failure. */
+ int xx;
switch (sigTag) {
case RPMSIGTAG_SIZE:
@@ -573,7 +575,12 @@
if (SHA1 == NULL)
goto exit;
- if (!headerAddEntry(sigh, RPMSIGTAG_SHA1, RPM_STRING_TYPE, SHA1, 1))
+ he->tag = RPMSIGTAG_SHA1;
+ he->t = RPM_STRING_TYPE;
+ he->p.str = SHA1;
+ he->c = 1;
+ xx = hae(sigh, he, 0);
+ if (!xx)
goto exit;
ret = 0;
break;
@@ -590,8 +597,14 @@
if (headerWrite(fd, h))
goto exit;
(void) Fclose(fd); fd = NULL;
- if (makeGPGSignature(fn, &sigTag, &pkt, &pktlen, passPhrase)
- || !headerAddEntry(sigh, sigTag, RPM_BIN_TYPE, pkt, pktlen))
+ if (makeGPGSignature(fn, &sigTag, &pkt, &pktlen, passPhrase))
+ goto exit;
+ he->tag = sigTag;
+ he->t = RPM_BIN_TYPE;
+ he->p.ptr = pkt;
+ he->c = pktlen;
+ xx = hae(sigh, he, 0);
+ if (!xx)
goto exit;
ret = 0;
break;
@@ -609,8 +622,14 @@
if (headerWrite(fd, h))
goto exit;
(void) Fclose(fd); fd = NULL;
- if (makePGPSignature(fn, &sigTag, &pkt, &pktlen, passPhrase)
- || !headerAddEntry(sigh, sigTag, RPM_BIN_TYPE, pkt, pktlen))
+ if (makePGPSignature(fn, &sigTag, &pkt, &pktlen, passPhrase))
+ goto exit;
+ he->tag = sigTag;
+ he->t = RPM_BIN_TYPE;
+ he->p.ptr = pkt;
+ he->c = pktlen;
+ xx = hae(sigh, he, 0);
+ if (!xx)
goto exit;
ret = 0;
break;
@@ -628,28 +647,42 @@
return ret;
}
-int rpmAddSignature(Header sigh, const char * file, int_32 sigTag,
+int rpmAddSignature(Header sigh, const char * file, uint32_t sigTag,
const char * passPhrase)
{
+ HAE_t hae = headerAddExtension;
+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
struct stat st;
byte * pkt;
- int_32 pktlen;
+ uint32_t pktlen;
int ret = -1; /* assume failure. */
+ int xx;
switch (sigTag) {
case RPMSIGTAG_SIZE:
if (Stat(file, &st) != 0)
break;
pktlen = st.st_size;
- if (!headerAddEntry(sigh, sigTag, RPM_INT32_TYPE, &pktlen, 1))
+ he->tag = sigTag;
+ he->t = RPM_INT32_TYPE;
+ he->p.ui32p = &pktlen;
+ he->c = 1;
+ xx = hae(sigh, he, 0);
+ if (!xx)
break;
ret = 0;
break;
case RPMSIGTAG_MD5:
pktlen = 16;
pkt = memset(alloca(pktlen), 0, pktlen);
- if (dodigest(PGPHASHALGO_MD5, file, pkt, 0, NULL)
- || !headerAddEntry(sigh, sigTag, RPM_BIN_TYPE, pkt, pktlen))
+ if (dodigest(PGPHASHALGO_MD5, file, pkt, 0, NULL))
+ break;
+ he->tag = sigTag;
+ he->t = RPM_BIN_TYPE;
+ he->p.ptr = pkt;
+ he->c = pktlen;
+ xx = hae(sigh, he, 0);
+ if (!xx)
break;
ret = 0;
break;
@@ -657,8 +690,14 @@
case RPMSIGTAG_PGP5: /* XXX legacy */
case RPMSIGTAG_PGP:
#if defined(SUPPORT_RPMV3_SIGN_RSA)
- if (makePGPSignature(file, &sigTag, &pkt, &pktlen, passPhrase)
- || !headerAddEntry(sigh, sigTag, RPM_BIN_TYPE, pkt, pktlen))
+ if (makePGPSignature(file, &sigTag, &pkt, &pktlen, passPhrase))
+ break;
+ he->tag = sigTag;
+ he->t = RPM_BIN_TYPE;
+ he->p.ptr = pkt;
+ he->c = pktlen;
+ xx = hae(sigh, he, 0);
+ if (!xx)
break;
/* XXX Piggyback a header-only RSA signature as well. */
#endif
@@ -670,8 +709,14 @@
#endif /* SUPPORT_PGP_SIGNING */
case RPMSIGTAG_GPG:
#if defined(SUPPORT_RPMV3_SIGN_DSA)
- if (makeGPGSignature(file, &sigTag, &pkt, &pktlen, passPhrase)
- || !headerAddEntry(sigh, sigTag, RPM_BIN_TYPE, pkt, pktlen))
+ if (makeGPGSignature(file, &sigTag, &pkt, &pktlen, passPhrase))
+ break;
+ he->tag = sigTag;
+ he->t = RPM_BIN_TYPE;
+ he->p.ptr = pkt;
+ he->c = pktlen;
+ xx = hae(sigh, he, 0);
+ if (!xx)
break;
/* XXX Piggyback a header-only DSA signature as well. */
#endif
@@ -826,7 +871,7 @@
{
const void * sig = pgpGetSig(dig);
rpmRC res;
- int_32 size = 0x7fffffff;
+ uint32_t size = 0xffffffff;
*t = '\0';
t = stpcpy(t, _("Header+Payload size: "));
@@ -842,11 +887,11 @@
if (size != dig->nbytes) {
res = RPMRC_FAIL;
t = stpcpy(t, rpmSigString(res));
- sprintf(t, " Expected(%d) != (%d)\n", (int)size, (int)dig->nbytes);
+ sprintf(t, " Expected(%u) != (%u)\n", (unsigned)size, (unsigned)dig->nbytes);
} else {
res = RPMRC_OK;
t = stpcpy(t, rpmSigString(res));
- sprintf(t, " (%d)", (int)dig->nbytes);
+ sprintf(t, " (%u)", (unsigned)dig->nbytes);
}
exit:
@@ -861,7 +906,7 @@
/*@modifies *t, internalState @*/
{
const void * sig = pgpGetSig(dig);
- int_32 siglen = pgpGetSiglen(dig);
+ uint32_t siglen = pgpGetSiglen(dig);
rpmRC res;
byte * md5sum = NULL;
size_t md5len = 0;
@@ -919,7 +964,7 @@
{
const void * sig = pgpGetSig(dig);
#ifdef NOTYET
- int_32 siglen = pgpGetSiglen(dig);
+ uint32_t siglen = pgpGetSiglen(dig);
#endif
rpmRC res;
const char * SHA1 = NULL;
@@ -992,9 +1037,9 @@
{
const void * sig = pgpGetSig(dig);
#ifdef NOTYET
- int_32 siglen = pgpGetSiglen(dig);
+ uint32_t siglen = pgpGetSiglen(dig);
#endif
- int_32 sigtag = pgpGetSigtag(dig);
+ uint32_t sigtag = pgpGetSigtag(dig);
pgpDigParams sigp = pgpGetSignature(dig);
const char * prefix = NULL;
rpmRC res = RPMRC_OK;
@@ -1186,9 +1231,9 @@
{
const void * sig = pgpGetSig(dig);
#ifdef NOTYET
- int_32 siglen = pgpGetSiglen(dig);
+ uint32_t siglen = pgpGetSiglen(dig);
#endif
- int_32 sigtag = pgpGetSigtag(dig);
+ uint32_t sigtag = pgpGetSigtag(dig);
pgpDigParams sigp = pgpGetSignature(dig);
rpmRC res;
int xx;
@@ -1292,8 +1337,8 @@
{
pgpDig dig = _dig;
const void * sig = pgpGetSig(dig);
- int_32 siglen = pgpGetSiglen(dig);
- int_32 sigtag = pgpGetSigtag(dig);
+ uint32_t siglen = pgpGetSiglen(dig);
+ uint32_t sigtag = pgpGetSigtag(dig);
rpmRC res;
if (dig == NULL || sig == NULL || siglen <= 0) {
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/signature.h
============================================================================
$ cvs diff -u -r1.2 -r1.3 signature.h
--- rpm/rpmdb/signature.h 7 Oct 2007 14:00:13 -0000 1.2
+++ rpm/rpmdb/signature.h 4 Nov 2007 17:59:56 -0000 1.3
@@ -53,7 +53,7 @@
* @return 0 on success, -1 on failure
*/
int rpmAddSignature(Header sigh, const char * file,
- int_32 sigTag, /*@null@*/ const char * passPhrase)
+ uint32_t sigTag, /*@null@*/ const char * passPhrase)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies sigh, sigTag, rpmGlobalMacroContext, fileSystem, internalState @*/;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmio_internal.h
============================================================================
$ cvs diff -u -r2.82 -r2.83 rpmio_internal.h
--- rpm/rpmio/rpmio_internal.h 6 Oct 2007 19:40:23 -0000 2.82
+++ rpm/rpmio/rpmio_internal.h 4 Nov 2007 17:59:56 -0000 2.83
@@ -63,11 +63,11 @@
struct pgpDigParams_s signature;
struct pgpDigParams_s pubkey;
- int32_t sigtag; /*!< Package signature tag. */
- int32_t sigtype; /*!< Package signature data type. */
+ uint32_t sigtag; /*!< Package signature tag. */
+ uint32_t sigtype; /*!< Package signature data type. */
/*@relnull@*/
const void * sig; /*!< Package signature. */
- int32_t siglen; /*!< Package signature length. */
+ uint32_t siglen; /*!< Package signature length. */
pgpVSFlags vsflags; /*!< Digest/signature operation disablers. */
struct rpmop_s dops; /*!< Digest operation statistics. */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmpgp.c
============================================================================
$ cvs diff -u -r2.63 -r2.64 rpmpgp.c
--- rpm/rpmio/rpmpgp.c 26 Oct 2007 04:00:52 -0000 2.63
+++ rpm/rpmio/rpmpgp.c 4 Nov 2007 17:59:56 -0000 2.64
@@ -1127,12 +1127,12 @@
return (dig ? &dig->pubkey : NULL);
}
-int32_t pgpGetSigtag(pgpDig dig)
+uint32_t pgpGetSigtag(pgpDig dig)
{
return (dig ? dig->sigtag : 0);
}
-int32_t pgpGetSigtype(pgpDig dig)
+uint32_t pgpGetSigtype(pgpDig dig)
{
return (dig ? dig->sigtype : 0);
}
@@ -1142,13 +1142,13 @@
return (dig ? dig->sig : NULL);
}
-int32_t pgpGetSiglen(pgpDig dig)
+uint32_t pgpGetSiglen(pgpDig dig)
{
return (dig ? dig->siglen : 0);
}
int pgpSetSig(pgpDig dig,
- int32_t sigtag, int32_t sigtype, const void * sig, int32_t siglen)
+ uint32_t sigtag, uint32_t sigtype, const void * sig, uint32_t siglen)
{
if (dig != NULL) {
#if 0
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmpgp.h
============================================================================
$ cvs diff -u -r2.50 -r2.51 rpmpgp.h
--- rpm/rpmio/rpmpgp.h 6 Oct 2007 19:40:23 -0000 2.50
+++ rpm/rpmio/rpmpgp.h 4 Nov 2007 17:59:56 -0000 2.51
@@ -1404,7 +1404,7 @@
* @param dig container
* @return signature tag
*/
-int32_t pgpGetSigtag(const pgpDig dig)
+uint32_t pgpGetSigtag(const pgpDig dig)
/*@*/;
/** \ingroup rpmts
@@ -1413,7 +1413,7 @@
* @param ts transaction set
* @return signature tag type
*/
-int32_t pgpGetSigtype(const pgpDig dig)
+uint32_t pgpGetSigtype(const pgpDig dig)
/*@*/;
/**
@@ -1430,7 +1430,7 @@
* @param dig container
* @return signature tag data length
*/
-int32_t pgpGetSiglen(const pgpDig dig)
+uint32_t pgpGetSiglen(const pgpDig dig)
/*@*/;
/**
@@ -1443,8 +1443,8 @@
* @return 0 always
*/
int pgpSetSig(pgpDig dig,
- int32_t sigtag, int32_t sigtype,
- /*@kept@*/ /*@null@*/ const void * sig, int32_t siglen)
+ uint32_t sigtag, uint32_t sigtype,
+ /*@kept@*/ /*@null@*/ const void * sig, uint32_t siglen)
/*@modifies dig @*/;
/**
@@ .
Received on Sun Nov 4 18:59:56 2007