rpmpgp.h   rpmpgp.h 
skipping to change at line 21 skipping to change at line 21
*/ */
#include <string.h> #include <string.h>
#include <popt.h> #include <popt.h>
#include <rpmiotypes.h> #include <rpmiotypes.h>
#include <yarn.h> #include <yarn.h>
#if defined(_RPMPGP_INTERNAL) #if defined(_RPMPGP_INTERNAL)
#include <rpmsw.h> #include <rpmsw.h>
/*@unchecked@*/
extern int _pgp_error_count;
/** \ingroup rpmpgp /** \ingroup rpmpgp
* Values parsed from OpenPGP signature/pubkey packet(s). * Values parsed from OpenPGP signature/pubkey packet(s).
*/ */
struct pgpDigParams_s { struct pgpDigParams_s {
/*@only@*/ /*@null@*/ /*@only@*/ /*@null@*/
const char * userid; const char * userid;
/*@dependent@*/ /*@null@*/ /*@dependent@*/ /*@null@*/
const rpmuint8_t * hash; const rpmuint8_t * hash;
rpmuint8_t tag; rpmuint8_t tag;
skipping to change at line 57 skipping to change at line 60
}; };
/** \ingroup rpmpgp /** \ingroup rpmpgp
* Container for values parsed from an OpenPGP signature and public key. * Container for values parsed from an OpenPGP signature and public key.
*/ */
struct pgpDig_s { struct pgpDig_s {
struct rpmioItem_s _item; /*!< usage mutex and pool identifier. */ struct rpmioItem_s _item; /*!< usage mutex and pool identifier. */
struct pgpDigParams_s signature; struct pgpDigParams_s signature;
struct pgpDigParams_s pubkey; struct pgpDigParams_s pubkey;
/*@observer@*/ /*@null@*/
const char * pubkey_algoN;
/*@observer@*/ /*@null@*/
const char * hash_algoN;
rpmuint32_t sigtag; /*!< Package signature tag. */ rpmuint32_t sigtag; /*!< Package signature tag. */
rpmuint32_t sigtype; /*!< Package signature data type. */ rpmuint32_t sigtype; /*!< Package signature data type. */
/*@relnull@*/ /*@relnull@*/
const void * sig; /*!< Package signature. */ const void * sig; /*!< Package signature. */
rpmuint32_t siglen; /*!< Package signature length. */ rpmuint32_t siglen; /*!< Package signature length. */
pgpVSFlags vsflags; /*!< Digest/signature operation disa blers. */ pgpVSFlags vsflags; /*!< Digest/signature operation disa blers. */
struct rpmop_s dops; /*!< Digest operation statistics. */ struct rpmop_s dops; /*!< Digest operation statistics. */
struct rpmop_s sops; /*!< Signature operation statistics. */ struct rpmop_s sops; /*!< Signature operation statistics. */
skipping to change at line 89 skipping to change at line 97
DIGEST_CTX hdrsha1ctx; /*!< (dsa) header sha1 hash context. */ DIGEST_CTX hdrsha1ctx; /*!< (dsa) header sha1 hash context. */
/*@only@*/ /*@null@*/ /*@only@*/ /*@null@*/
void * sha1; /*!< (dsa) V3 signature hash. */ void * sha1; /*!< (dsa) V3 signature hash. */
size_t sha1len; /*!< (dsa) V3 signature hash length. */ size_t sha1len; /*!< (dsa) V3 signature hash length. */
/*@only@*/ /*@null@*/ /*@only@*/ /*@null@*/
DIGEST_CTX md5ctx; /*!< (rsa) md5 hash context. */ DIGEST_CTX md5ctx; /*!< (rsa) md5 hash context. */
/*@only@*/ /*@null@*/ /*@only@*/ /*@null@*/
DIGEST_CTX hdrctx; /*!< (rsa) header hash context. */ DIGEST_CTX hdrctx; /*!< (rsa) header hash context. */
/*@only@*/ /*@null@*/ /*@only@*/ /*@null@*/
void * md5; /*!< (rsa) V3 signature hash. */ void * md5; /*!< (rsa) signature hash. */
size_t md5len; /*!< (rsa) V3 signature hash length. */ size_t md5len; /*!< (rsa) signature hash length. */
/*@owned@*/ /*@relnull@*/ /*@owned@*/ /*@relnull@*/
void * impl; /*!< Implementation data */ void * impl; /*!< Implementation data */
#if defined(__LCLINT__) #if defined(__LCLINT__)
/*@refs@*/ /*@refs@*/
int nrefs; /*!< (unused) keep splint happy */ int nrefs; /*!< (unused) keep splint happy */
#endif #endif
}; };
#endif /* _RPMPGP_INTERNAL */ #endif /* _RPMPGP_INTERNAL */
/** /**
*/ */
typedef const struct pgpValTbl_s { typedef const struct pgpValTbl_s {
skipping to change at line 1650 skipping to change at line 1660
return crc & 0xffffff; return crc & 0xffffff;
} }
/** /**
*/ */
typedef int (*pgpImplSet_t) (/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigP arams sigp) typedef int (*pgpImplSet_t) (/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigP arams sigp)
/*@modifies ctx, dig @*/; /*@modifies ctx, dig @*/;
/** /**
*/ */
typedef int (*pgpImplErrChk_t) (pgpDig dig, const char * msg, int rc, unsig
ned expected)
/*@*/;
/**
*/
typedef int (*pgpImplAvailable_t) (pgpDig dig, int algo)
/*@*/;
/**
*/
typedef int (*pgpImplGenerate_t) (pgpDig dig)
/*@*/;
/**
*/
typedef int (*pgpImplSign_t) (pgpDig dig)
/*@*/;
/**
*/
typedef int (*pgpImplVerify_t) (pgpDig dig) typedef int (*pgpImplVerify_t) (pgpDig dig)
/*@*/; /*@*/;
/** /**
*/ */
typedef int (*pgpImplMpiItem_t) (const char * pre, pgpDig dig, int itemno, typedef int (*pgpImplMpiItem_t) (const char * pre, pgpDig dig, int itemno,
const rpmuint8_t * p, /*@null@*/ const rpmuint8_t * pend) const rpmuint8_t * p, /*@null@*/ const rpmuint8_t * pend)
/*@globals fileSystem @*/ /*@globals fileSystem @*/
/*@modifies dig, fileSystem @*/; /*@modifies dig, fileSystem @*/;
skipping to change at line 1679 skipping to change at line 1709
/** /**
*/ */
typedef void * (*pgpImplInit_t) (void) typedef void * (*pgpImplInit_t) (void)
/*@*/; /*@*/;
/** /**
*/ */
typedef struct pgpImplVecs_s { typedef struct pgpImplVecs_s {
pgpImplSet_t _pgpSetRSA; pgpImplSet_t _pgpSetRSA;
pgpImplVerify_t _pgpVerifyRSA;
pgpImplSet_t _pgpSetDSA; pgpImplSet_t _pgpSetDSA;
pgpImplVerify_t _pgpVerifyDSA; pgpImplSet_t _pgpSetELG;
pgpImplSet_t _pgpSetECDSA; pgpImplSet_t _pgpSetECDSA;
pgpImplVerify_t _pgpVerifyECDSA;
pgpImplErrChk_t _pgpErrChk;
pgpImplAvailable_t _pgpAvailableCipher;
pgpImplAvailable_t _pgpAvailableDigest;
pgpImplAvailable_t _pgpAvailablePubkey;
pgpImplVerify_t _pgpVerify;
pgpImplSign_t _pgpSign;
pgpImplGenerate_t _pgpGenerate;
pgpImplMpiItem_t _pgpMpiItem; pgpImplMpiItem_t _pgpMpiItem;
pgpImplClean_t _pgpClean; pgpImplClean_t _pgpClean;
pgpImplFree_t _pgpFree; pgpImplFree_t _pgpFree;
pgpImplInit_t _pgpInit; pgpImplInit_t _pgpInit;
} pgpImplVecs_t; } pgpImplVecs_t;
/** /**
*/ */
/*@unchecked@*/ /*@unchecked@*/
extern pgpImplVecs_t * pgpImplVecs; extern pgpImplVecs_t * pgpImplVecs;
skipping to change at line 1708 skipping to change at line 1746
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplSetRSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp) int pgpImplSetRSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp)
/*@modifies ctx, dig @*/ /*@modifies ctx, dig @*/
{ {
return (*pgpImplVecs->_pgpSetRSA) (ctx, dig, sigp); return (*pgpImplVecs->_pgpSetRSA) (ctx, dig, sigp);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplVerifyRSA(pgpDig dig) int pgpImplSetDSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp)
/*@*/ /*@modifies ctx, dig @*/
{ {
return (*pgpImplVecs->_pgpVerifyRSA) (dig); return (*pgpImplVecs->_pgpSetDSA) (ctx, dig, sigp);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplSetDSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp) int pgpImplSetELG(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp)
/*@modifies ctx, dig @*/ /*@modifies ctx, dig @*/
{ {
return (*pgpImplVecs->_pgpSetDSA) (ctx, dig, sigp); return (*pgpImplVecs->_pgpSetELG) (ctx, dig, sigp);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplVerifyDSA(pgpDig dig) int pgpImplSetECDSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sig
p)
/*@modifies ctx, dig @*/
{
return (*pgpImplVecs->_pgpSetECDSA) (ctx, dig, sigp);
}
/**
*/
/*@unused@*/ static inline
int pgpImplErrChk(pgpDig dig, const char * msg, int rc, unsigned expected)
/*@*/ /*@*/
{ {
return (*pgpImplVecs->_pgpVerifyDSA) (dig); return (pgpImplVecs->_pgpErrChk
? (*pgpImplVecs->_pgpErrChk) (dig, msg, rc, expected)
: rc);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplSetECDSA(/*@only@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sig int pgpImplAvailableCipher(pgpDig dig, int algo)
p) /*@*/
/*@modifies ctx, dig @*/
{ {
return (*pgpImplVecs->_pgpSetECDSA) (ctx, dig, sigp); return (pgpImplVecs->_pgpAvailableCipher
? (*pgpImplVecs->_pgpAvailableCipher) (dig, algo)
: 0);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplVerifyECDSA(pgpDig dig) int pgpImplAvailableDigest(pgpDig dig, int algo)
/*@*/ /*@*/
{ {
return (*pgpImplVecs->_pgpVerifyECDSA) (dig); return (pgpImplVecs->_pgpAvailableDigest
? (*pgpImplVecs->_pgpAvailableDigest) (dig, algo)
: 0);
}
/**
*/
/*@unused@*/ static inline
int pgpImplAvailablePubkey(pgpDig dig, int algo)
/*@*/
{
return (pgpImplVecs->_pgpAvailablePubkey
? (*pgpImplVecs->_pgpAvailablePubkey) (dig, algo)
: 0);
}
/**
*/
/*@unused@*/ static inline
int pgpImplVerify(pgpDig dig)
/*@*/
{
return (pgpImplVecs->_pgpVerify
? (*pgpImplVecs->_pgpVerify) (dig)
: 0);
}
/**
*/
/*@unused@*/ static inline
int pgpImplSign(pgpDig dig)
/*@*/
{
return (pgpImplVecs->_pgpSign
? (*pgpImplVecs->_pgpSign) (dig)
: 0);
}
/**
*/
/*@unused@*/ static inline
int pgpImplGenerate(pgpDig dig)
/*@*/
{
return (pgpImplVecs->_pgpGenerate
? (*pgpImplVecs->_pgpGenerate) (dig)
: 0);
} }
/** /**
*/ */
/*@unused@*/ static inline /*@unused@*/ static inline
int pgpImplMpiItem(const char * pre, pgpDig dig, int itemno, int pgpImplMpiItem(const char * pre, pgpDig dig, int itemno,
const rpmuint8_t * p, /*@null@*/ const rpmuint8_t * pend) const rpmuint8_t * p, /*@null@*/ const rpmuint8_t * pend)
/*@modifies dig @*/ /*@modifies dig @*/
{ {
return (*pgpImplVecs->_pgpMpiItem) (pre, dig, itemno, p, pend); return (*pgpImplVecs->_pgpMpiItem) (pre, dig, itemno, p, pend);
 End of changes. 18 change blocks. 
18 lines changed or deleted 116 lines changed or added


 rpmversion.h   rpmversion.h 
skipping to change at line 81 skipping to change at line 81
/* link-time information */ /* link-time information */
extern uint32_t rpmlibVersion(void) extern uint32_t rpmlibVersion(void)
/*@*/; /*@*/;
extern uint32_t rpmlibTimestamp(void) extern uint32_t rpmlibTimestamp(void)
/*@*/; /*@*/;
extern uint32_t rpmlibVendor(void) extern uint32_t rpmlibVendor(void)
/*@*/; /*@*/;
/* compile-time information */ /* compile-time information */
#define RPMLIB_VERSION RPMLIB_VERSION_ENCODE(5,3,r,1,0,_) #define RPMLIB_VERSION RPMLIB_VERSION_ENCODE(5,3,r,2,0,_)
#define RPMLIB_TIMESTAMP RPMLIB_TIMESTAMP_ENCODE(2009,0,0,0,0) #define RPMLIB_TIMESTAMP RPMLIB_TIMESTAMP_ENCODE(2009,0,0,0,0)
#define RPMLIB_VENDOR RPMLIB_VENDOR_ENCODE('R','P','M','5') #define RPMLIB_VENDOR RPMLIB_VENDOR_ENCODE('R','P','M','5')
/* RPM release version encoding */ /* RPM release version encoding */
#define RPMLIB_VERSION_ENCODE(major,minor,type,micro,revision,snap) \ #define RPMLIB_VERSION_ENCODE(major,minor,type,micro,revision,snap) \
( RPMLIB_BITFIELD_SET(31,27,(major)) \ ( RPMLIB_BITFIELD_SET(31,27,(major)) \
| RPMLIB_BITFIELD_SET(26,21,(minor)) \ | RPMLIB_BITFIELD_SET(26,21,(minor)) \
| RPMLIB_BITFIELD_SET(20,18,RPMLIB_VERSION_ENCODE_T(type)) \ | RPMLIB_BITFIELD_SET(20,18,RPMLIB_VERSION_ENCODE_T(type)) \
| RPMLIB_BITFIELD_SET(17,10,(micro)) \ | RPMLIB_BITFIELD_SET(17,10,(micro)) \
| RPMLIB_BITFIELD_SET(9,1,(revision)) \ | RPMLIB_BITFIELD_SET(9,1,(revision)) \
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/