Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/rpmchecksig.c File Reference

Verify the signature of a package. More...

#include "system.h"
#include "rpmio_internal.h"
#include <rpmcli.h>
#include "rpmdb.h"
#include "rpmts.h"
#include "rpmlead.h"
#include "signature.h"
#include "misc.h"
#include "debug.h"

Go to the source code of this file.

Functions

int manageFile (FD_t *fdp, const char **fnp, int flags, int rc)
int copyFile (FD_t *sfdp, const char **sfnp, FD_t *tfdp, const char **tfnp)
 Copy header+payload, calculating digest(s) on the fly. More...

int getSignid (Header sig, int sigtag, unsigned char *signid)
 Retrieve signer fingerprint from an OpenPGP signature tag. More...

int rpmReSign (rpmts ts, QVA_t qva, const char **argv)
int rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
int rpmcliImportPubkeys (const rpmts ts, QVA_t qva, const char **argv)
int readFile (FD_t fd, const char *fn, pgpDig dig)
int rpmVerifySignatures (QVA_t qva, rpmts ts, FD_t fd, const char *fn)
int rpmcliSign (rpmts ts, QVA_t qva, const char **argv)

Variables

int _print_pkts = 0
unsigned char header_magic [8]


Detailed Description

Verify the signature of a package.

Definition in file rpmchecksig.c.


Function Documentation

int copyFile FD_t   sfdp,
const char **    sfnp,
FD_t   tfdp,
const char **    tfnp
[static]
 

Copy header+payload, calculating digest(s) on the fly.

Definition at line 93 of file rpmchecksig.c.

References _, Fread, Fstrerror, Fwrite, and manageFile.

Referenced by rpmReSign.

int getSignid Header    sig,
int    sigtag,
unsigned char *    signid
[static]
 

Retrieve signer fingerprint from an OpenPGP signature tag.

Parameters:
sig  signature header
sigtag  signature tag
Return values:
signid  signer fingerprint
Returns:
0 on success

Definition at line 138 of file rpmchecksig.c.

References headerFreeData, headerGetEntry, int_32, pgpFreeDig, pgpNewDig, pgpPrtPkts, pgpDig_s::signature, and pgpDigParams_s::signid.

Referenced by rpmReSign.

int manageFile FD_t   fdp,
const char **    fnp,
int    flags,
int    rc
[static]
 

Definition at line 31 of file rpmchecksig.c.

References _, Fclose, fdFree, fdLink, Ferror, Fopen, Fstrerror, and makeTempFile.

Referenced by copyFile, and rpmReSign.

int readFile FD_t    fd,
const char *    fn,
pgpDig    dig
[static]
 

Todo:
If the GPG key was known available, the md5 digest could be skipped.

Definition at line 601 of file rpmchecksig.c.

References _, Fread, Fstrerror, _FDDIGEST_s::hashalgo, _FDDIGEST_s::hashctx, header_magic, HEADER_MAGIC_YES, headerFree, headerFreeData, headerGetEntry, headerIsEntry, headerRead, headerSizeof, int_32, PGPHASHALGO_MD5, PGPHASHALGO_SHA1, RPMDIGEST_NONE, rpmDigestInit, rpmDigestUpdate, and RPMTAG_HEADERIMMUTABLE.

Referenced by rpmVerifySignatures.

int rpmcliImportPubkey const rpmts    ts,
const unsigned char *    pkt,
ssize_t    pktlen
 

< Lookup type in effect

Definition at line 407 of file rpmchecksig.c.

References _free, b64encode, headerAddEntry, headerAddOrAppendEntry, headerFree, headerNew, headerSprintf, int_32, pgpFreeDig, pgpHexStr, pgpNewDig, pgpPrtPkts, pgpDig_s::pubkey, RPM_INT32_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmdbAdd, RPMSENSE_EQUAL, RPMSENSE_KEYRING, RPMTAG_BUILDHOST, RPMTAG_BUILDTIME, RPMTAG_DESCRIPTION, RPMTAG_GROUP, RPMTAG_INSTALLTIME, RPMTAG_LICENSE, RPMTAG_NAME, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_PUBKEYS, RPMTAG_RELEASE, RPMTAG_RPMVERSION, RPMTAG_SIZE, RPMTAG_SOURCERPM, RPMTAG_SUMMARY, RPMTAG_VERSION, rpmts, rpmtsGetRdb, rpmtsGetTid, rpmtsOpenDB, pgpDigParams_s::signid, stpcpy, pgpDigParams_s::time, pgpDigParams_s::userid, pgpDigParams_s::version, and xmalloc.

Referenced by rpmcliImportPubkeys, and rpmts_PgpImportPubkey.

int rpmcliSign rpmts    ts,
QVA_t    qva,
const char **    argv
 

Definition at line 1004 of file rpmchecksig.c.

References Fclose, Ferror, Fopen, rpmcliImportPubkeys, rpmReSign, rpmts, and rpmVerifySignatures.

Referenced by main.

int rpmVerifySignatures QVA_t    qva,
rpmts    ts,
FD_t    fd,
const char *    fn
 

Definition at line 673 of file rpmchecksig.c.

References _, _free, _print_pkts, fdInitDigest, headerFreeIterator, headerInitIterator, headerIsEntry, headerNextIterator, int_32, pgpCleanDig, PGPHASHALGO_MD5, PGPHASHALGO_SHA1, pgpPrtPkts, readFile, readLead, rpmFreeSignature, rpmRC, RPMRC_NOKEY, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadSignature, rpmts, rpmtsCleanDig, rpmtsDig, rpmtsSetSig, rpmtsSignature, rpmVerifySignature, stpcpy, stpncpy, and pgpDigParams_s::version.

Referenced by rpmcliSign.


Variable Documentation

int _print_pkts = 0 [static]
 

Definition at line 26 of file rpmchecksig.c.

Referenced by rpmVerifySignatures.

unsigned char header_magic[8] [static]
 

Initial value:

 {
        0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00
}

Definition at line 594 of file rpmchecksig.c.

Referenced by readFile.


Generated on Tue Sep 17 16:00:03 2002 for rpm by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002